kot_k_k
Новичок
Добрый день, такая загвоздка.
Есть XSLT - копирует XML и изменяет один тег. Все работает ура.
Но теперь возникла необходимость изменить тег, которого может быть несколько, циклом.
но при вставке цикла в обработку - он или не обрабатывает или валит все теги в месте.
вот XSLT
в этом случае ничего не изменяет.
если изменить в начале
<xsl:template match="/">
на
<xsl:template match="PRODUCT">
то будет нанизывать все значения поля продукт и выдавать каждый раз нет такое
<PRODUCT>36830</PRODUCT><PRODUCT>777777</PRODUCT><PRODUCT>11140252353</PRODUCT>
как правильно это сделать - чтобы скопировало все, но отработал цикл на изменение.
Конечно можно тупо переписать всю карту и вставить цикл, но хочется красоты
Есть XSLT - копирует XML и изменяет один тег. Все работает ура.
Но теперь возникла необходимость изменить тег, которого может быть несколько, циклом.
но при вставке цикла в обработку - он или не обрабатывает или валит все теги в месте.
вот XSLT
Код:
<xsl:template match="/">
<xsl:for-each select="/ORDER/HEAD/POSITION">
<PRODUCT>
<xsl:if test="PRODUCT!=''">
<xsl:value-of select="PRODUCT"/>
</xsl:if>
<xsl:if test="not(PRODUCT)">
<xsl:value-of select="PRODUCTIDBUYER"/>
</xsl:if>
</PRODUCT>
</xsl:for-each>
</xsl:template>
<xsl:template match="/ | @* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
если изменить в начале
<xsl:template match="/">
на
<xsl:template match="PRODUCT">
то будет нанизывать все значения поля продукт и выдавать каждый раз нет такое
<PRODUCT>36830</PRODUCT><PRODUCT>777777</PRODUCT><PRODUCT>11140252353</PRODUCT>
как правильно это сделать - чтобы скопировало все, но отработал цикл на изменение.
Конечно можно тупо переписать всю карту и вставить цикл, но хочется красоты