2013-06-20 161 views
0

我在XSLT中非常瞭解初學者。我試圖改變這個XML:使用XSLT將xml轉換爲xml

<A> 
    <B> 
     <C> 
      <A id="1"> 
       <I/><T/> 
      </A> 
      <A id="2"> 
       <I/><T/> 
      </A> 
     </C> 
     <C> 
      <A id="3"> 
       <I/><T/> 
      </A> 
      <A id="4"> 
       <I/> <T/> 
      </A> 
     </C> 
    </B> 
</A> 

喜歡的東西:

<A> 
    <B> 
     <A id="1"> 
      <I/> <T/> 
     </A> 
     <A id="2"/> 
      <I/> </T> 
     </A> 
     <A id="3"> 
      <I/> <T/> 
     </A> 
     <A id="4"/> 
      <I/> <T/> 
     </A> 
    </B> 
</A> 

正如你可以在這裏看到我在「B」標籤塊2「C」標記的塊。我想擺脫'C'標籤,並在'B'標籤下添加所有的'A'標籤,並且還需要'A'內的'I'和'T'標籤。

有人可以幫我在這一個?

+1

這應該是很容易的。請自行嘗試。 –

+0

應該單獨聲明這樣的4個'A'標籤嗎? ???對於A [1],A [2]等? – crtn

+0

查看xslt我牙齒變換(例如http://en.wikipedia.org/wiki/Identity_transform#Using_XSLT)並添加一個沒有xsl:copy(僅applay-templates)的B的匹配。 –

回答

0

據伊恩說:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="node()|@*"> 
     <xsl:copy> 
      <xsl:apply-templates select="node()|@*"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="C"> 
     <xsl:apply-templates/> 
    </xsl:template> 

</xsl:stylesheet> 

+0

torazaburo謝謝..我有一個問題,但..我有一個標籤說,我怎麼能把它轉換成?我想更改標籤中的屬性名稱以及標籤名稱。 – crtn

+1

只需爲每種情況添加新模板。例如,'。 – 2013-06-21 09:53:52

+0

嗨,..只是另一個問題..現在我有4個「A」標籤..我如何訪問第三和第四個「A」標籤..我需要爲每個標籤設置不同的屬性值。 – crtn