我有一个输入xml:
<group>
<item>
<id>item 1</id>
<CategoryName>blue</CategoryName>
<id>item 2</id>
<CategoryName>orange</CategoryName>
<id>item 3</id>
<CategoryName>green</CategoryName>
</item>
</group>
我希望将其转换为
<group>
<item>
<itemNode><id>item 1</id><itemNode>
<Color>blue</Color>
<itemNode><id>item 2</id><itemNode>
<Color>orange</Color>
<itemNode><id>item 3</id><itemNode>
<Color>green</Color>
</item>
当我使用xpath时,它首先显示itemNodes标签,然后显示Color标签,但不显示数据所在的顺序。
我有什么想法可以改变,但仍然保持序列?
答案 0 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="item">
<group>
<item>
<xsl:for-each select="id">
<xsl:variable name="pos" select="position()" />
<itemNode><id><xsl:value-of select="."/></id></itemNode>
<color><xsl:value-of select="../CategoryName[$pos]"/></color>
</xsl:for-each>
</item>
</group>
</xsl:template>
</xsl:stylesheet>