我无法理解 exsl:node-set 函数的工作原理。
我有一些 XML 正在扩展并用于动态填充 exsl:node-set。假设它目前是这种格式:
<xsl:variable name="wrap">
<nodes>
<node/>
<node/>
<node/>
</nodes>
</xsl:variable>
<xsl:variable name="wrapNodeSet" select="exsl:node-set($wrap)"/>
这按要求工作,输出 $wrapNodeSet 显示上面的节点标记。根节点名称使用名称($wrapNodeSet/*)显示为“节点”。
现在我需要扩展它以拥有 2 个节点并动态填充节点集。所以:
<xsl:variable name="wrap">
<nodes tier="a">
<node/>
<node/>
<node/>
</nodes>
<nodes tier="b">
<node/>
<node/>
<node/>
</nodes>
</xsl:variable>
<xsl:variable name="wrapNodeSet" select="exsl:node-set($wrap)/nodes[@tier='b']"/>
输出节点集包括节点元素,但输出根节点的名称现在更改为“节点”。
有人可以解释为什么仍然输出节点元素吗?