2013-05-01 26 views
0

我的問題很簡單,我如何使用XSLT將數據插入到我在XSLT中創建的元素標記中?如何添加數據到在XSLT中創建的元素

對於實施例I使用該創建我元件:

<xsl:template match="VEHICLE"> 
    <xsl:element name="{@STATUS}"> 
    <xsl:apply-templates/> 
    </xsl:element> 
</xsl:template> 

XML結構:(輸入)

<cars> 
    <VEHICLE> 
    <MODEL>FORD</MODEL> 
    //other elements here 
    </VEHICLE> 
    <VEHICLE> 
    <MODEL>DODGE</MODEL> 
    //other elements here 
    </VEHICLE>  
</cars> 

(期望輸出)

<cars> 
     <VEHICLE> 
     <MODEL>FORD</MODEL> 
     <STATUS>SOLD</STATUS> 
     //other elements here 
     </VEHICLE> 
     <VEHICLE> 
     <MODEL>DODGE</MODEL> 
     <STATUS>AVAILABLE</STATUS> 
     //other elements here 
     </VEHICLE> 
</cars> 
+0

請清楚如何你的輸入輸出XML將/ SH應該看起來像。我假設上面的xml是你的輸出,@STATUS的值是MODEL。但是比你的「其他元素」不包含在新元素中。 – 2013-05-02 06:54:16

+0

僅供參考,在XML輸入中,開頭''標籤與結尾''標籤不匹配。 – 2013-05-02 23:57:51

回答

1

可以添加的元素<foo/>是這樣的:

<xsl:template match="VEHICLE"> 
    <xsl:element name="{@STATUS}"> 
    <xsl:apply-templates/> 
    <foo/> 
    </xsl:element> 
</xsl:template> 
+0

說實話,我不太明白你的意思。你能解釋一下嗎? – user1991372 2013-05-02 16:30:26

+0

這會將''添加到您的輸出中。也許如果你顯示你想要的輸出,我可以給你一個更準確的答案。 – 2013-05-02 18:10:09

+0

好吧,我絕對可以做到這一點。通過添加您是指新元素還是元素內的數據?我希望這有助於澄清我的問題。我只是更新了我的輸出,這有幫助嗎? – user1991372 2013-05-02 18:41:53

0

在您的輸入文檔中,我已將//other elements here更改爲<!--//other elements here-->但除此之外,此轉換可提供您想要的結果;

輸入

<cars> 
    <VEHICLE> 
    <MODEL>FORD</MODEL> 
    <!--//other elements here--> 
    </VEHICLE> 
    <VEHICLE> 
    <MODEL>DODGE</MODEL> 
    <!--//other elements here--> 
    </VEHICLE>  
</cars> 

變換

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

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

    <xsl:template match="VEHICLE"> 
    <VEHICLE> 
     <xsl:if test="MODEL = 'FORD'"> 
     <STATUS>SOLD</STATUS> 
     </xsl:if> 
     <xsl:if test="MODEL = 'DODGE'"> 
     <STATUS>AVAILABLE</STATUS> 
     </xsl:if> 
     <xsl:copy-of select="node()"/> 
    </VEHICLE> 
    </xsl:template> 

</xsl:transform> 

結果

<cars> 
    <VEHICLE> 
    <STATUS>SOLD</STATUS> 
    <MODEL>FORD</MODEL> 
    <!--//other elements here--> 
    </VEHICLE> 
    <VEHICLE> 
    <STATUS>AVAILABLE</STATUS> 
    <MODEL>DODGE</MODEL> 
    <!--//other elements here --> 
    </VEHICLE> 
</cars>  
相關問題