2012-11-16 74 views
-1

我有一個XML輸入爲:XSTL - 保持序列

<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標籤然後是彩色標籤,但不是數據順序排列的序列。

任何想法如何轉換,但仍然m保持序列?

+0

你可以發佈你得到的xslt嗎? – xiaoyi

+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> 
+0

xiaoyi,謝謝!你的解決方案的工作,但有一件事我忘了提的是id和類別名稱可以repeatitive像這樣: 項目1 項目1.1 <類別名稱>藍色 項目2 項目2 項目2 <類別名稱>橙 項目3 項目3.1 <類別名稱>綠色

+0

小怡,你能幫 –

+0

@AtifSultanuddin更新。 – xiaoyi