将NodeList插入XSLT输出

时间:2012-10-18 08:32:34

标签: xslt xslt-2.0 saxon

我将NodeList作为参数传递给XSLT(我使用SaxonB 9.1 / XSLT 2,如果这有任何区别的话)。

我想要做的是将nodelist中的所有元素/值插入到XSLT输出(XML文件)中。

当我在下面执行时,它只打印节点的文本值(即它根本不生成XML元素)

<xsl:param name="NL" />
.    <xsl:template match="/">
.          <xsl:value-of select="$NL" />
.     </xsl:template>
<xsl:stylesheet>

我可以使用XPath访问特定元素,即。 $ NL /节点1。 为了将所有NodeList的XML元素和值包含在输出中,我需要做什么?

我也尝试像下面那样循环,但它只打印NOdeList的“顶级”元素 - 它不包含这些元素的任何子节点。

<xsl:for-each select="$NL/*">
.   <xsl:element name="{./name()}">
.       <xsl:value-of select="./text()"/>
.   </xsl:element>
</xsl:for-each>

1 个答案:

答案 0 :(得分:2)

<xsl:value-of>为您提供字符串值,您可能希望改为使用<xsl:copy-of>