parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Глюки при преобразовании xml документа...

Givi 04.08.2002 15:43

Вот такого рода документ:
<price date="2002-07-23">
       <item price="1234.87" total="68" reserved="2" ordered="0">
           <id>GXD3-67FGT5</id>
           <section>Млекопитающие</section>
           <title>Выхухоль бортовая; сер.KX with MMDF&amp;K support 122/17/92, \GX</title>
        </item>
        ...
        ...
</price>
Вот такой ему XSL:
[code]
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="price">
	$priceDate[<xsl:value-of select="@date"/>]
	<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="item">
	^void:sql{
	INSERT INTO items
		(vendor_id,
		section_title,
		item_title,
		item_price,
		item_total,
		item_reserved,
		item_ordered,
		published,
		up_date)
	VALUES(
		'<xsl:value-of select="id"/>',
		'<xsl:value-of select="section"/>',
		'<xsl:value-of select="title"/>',
		'<xsl:value-of select="@price"/>',
		'<xsl:value-of select="@total"/>',
		'<xsl:value-of select="@reserved"/>',
		'<xsl:value-of select="@ordered"/>',
		'0',
		'$priceDate')
	}
</xsl:template>
</xsl:stylesheet>
По идее, после преобразования, это дело ^process{}, но подстава в том, что преобразование, порой происходит не полностью, а затыкается на произвольных местах. Ну, не то что бы совсем на произвольных, в одном и том же месте для одного документа, но не очень понятно почему. Некоторые проходят преобразование без проблем. Я пробовал поиграться заменами всяких символов типа "/", "\", ".", ",", соответственно на "\/", "\\", "\.", "\,"... В некоторых случаях это помогало, зато те документы, которые проходили преобразование, перестали оное делать... В чём может быть корень, так называемого зла?