2017-10-18 66 views
2

我有一個像XML消息如下:XSLT和-每個

<message> 
<line number="1"><li>1</li><li>2</li><li>3</li></line> 
<line number="2"><li>x</li><li>y</li><li>z</li> 
</line> 
<line number="3"><li>a</li><li>b</li><li>c</li> 
</line> 
</message> 

我很奇怪,爲什麼下面的XSLT不返回<li>元素,但只有裏面是什麼<li></li>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" encoding="utf-8" indent="no"/> 
<xsl:template match="/"> 
    <xsl:for-each select="/message/line"> 

line <xsl:value-of select="position()"/>: <xsl:value-of select="."/> 

    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 

例如:line 1: 123而不是line 1: <li>1</li><li>2</li><li>3</li>

回答

2

這就是xsl:value-of所做的:它返回str節點的值。如果你想把它保存爲樹,使用xsl:copy-of

順便說一下,XSLT-land中沒有任何標籤。它只能看到節點。在XSLT開始行動之前,XML解析器將這些標籤變成節點。

+0

非常感謝 - 這就是我一直在尋找的東西。 – Christian68