我有一个变量$ all,其中包含节点列表(复杂节点,包括多级子节点)。 我还有第二个$ filtered变量,其中包含来自$ all的已过滤节点。
$ filtered的个节点必须未经修改就被复制。 其余节点必须修改。
两个变量都起作用,并且一切正常。
现在,我想遍历$ filtered中未包含的$ all中所有节点的for-each。
当然,我可以用负样式重写$ filtered的filter-expresion,但是我不喜欢这样做,并且希望防止这种情况发生。 我不喜欢使用任何属性或元素来处理它,因为过滤器表达式可以更改,并且会生成一些条件。我必须按$ filtered的每个整个节点(包括所有子节点,属性和元素(如指纹))从$ all中过滤节点。
我不明白这一点。
我尝试了针对每个选择[....]
<xsl:for-each select="...">
$all != $filtered
$all/node() != $filtered/node()
$all[node() != $filtered/node()]
$all[not($filtered)]
... and some other
谁能指出我的失败。
那一定是有可能的,但我想我只是看不见森林。
谢谢
答案 0 :(得分:2)
如果您使用的是XSLT 2.0,则应该可以...
<xsl:for-each select="$all except $filtered">