我無法理解exsl:node-set函數的工作原理。什麼是exsl:node-set視爲根節點?
我有一些XML,我正在擴大和使用動態填充exsl:節點集。假設它現在採用以下格式:
<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']"/>
輸出節點集包括節點元素,但輸出根節點的名稱現在變爲「節點」。
有人可以解釋爲什麼節點元素仍然輸出?