-1

我有一个输入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 标签,然后显示颜色标签,但不是按照数据最初所在的顺序。

有什么想法可以改变但仍然保持顺序吗?

4

1 回答 1

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>
于 2012-11-16T19:43:23.743 回答