У меня возникли проблемы с пониманием того, как работает функция exsl:node-set.
У меня есть некоторый XML, который я расширяю и использую для динамического заполнения набора exsl:node. Допустим, в настоящее время он находится в таком формате:
<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']"/>
Вывод набора узлов включает элемент узлов, но вывод имени корневого узла теперь изменяется на «узел».
Может кто-нибудь объяснить, почему элемент узлов все еще выводится?