[英]XSLT and for-each
我有如下的 XML 消息:
<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>
這就是xsl:value-of
作用:它返回節點的字符串值。 如果您希望將其保留為樹,請使用xsl:copy-of
。
順便說一下,XSLT-land 中沒有任何標簽。 它只看到節點。 在 XSLT 開始行動之前,XML 解析器將標記變成了節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.