在XSLT中将一组节点存储为变量?

时间:2009-08-05 14:32:35

标签: xslt xpath

所以这是我目前的代码:

<xsl:variable name="address">
    <xsl:value-of select="concat(/node1/node2/address.node/street, /node1/node2/address.node/city, /node1/node2/address.node/zip)" />
</xsl:variable>

现在,我正试图将其缩短为:

<xsl:variable name="addressNode">
    <xsl:value-of select="/node1/node2/address.node" />
</xsl:variable>

<xsl:variable name="address">
    <xsl:value-of select="concat($addressNode/street, $addressNode/city, $addressNode/zip)" />
</xsl:variable>

然而,这根本不符合预期......有人能指出我正确的方向吗?我尝试使用copy-to而不是value-of for addressNode,但它仍然无效:(

1 个答案:

答案 0 :(得分:3)

当你在xsl:variable中使用xsl:value-of时,你得到一个string类型的变量,而不是一个节点。您应该使用xsl:variable:

的select属性
<xsl:variable name="addressNode" select="/node1/node2/address.node" />