【发布时间】:2019-06-14 21:59:59
【问题描述】:
我有一个变量 $all,包含一个节点列表(复杂节点,包括多级子节点)。 我有第二个 $filtered 变量,其中包含来自 $all 的过滤节点。
$filtered 的节点必须在未经修改的情况下被复制。 其余节点必须修改。
两个变量都在工作,一切都很好。
现在我喜欢使用 for-each 循环遍历 $all 中未包含在 $filtered 中的所有节点。
当然,我可以用否定样式重写 $filtered 的过滤器表达式,但我不喜欢这样做并且想防止这种情况发生。 我不喜欢抓住任何属性或元素来处理它,因为过滤器表达式可以更改,并且会生成一些条件。我必须通过 $filtered 的每个完整节点过滤 $all 中的节点,包括所有子节点、属性和元素(如指纹)。
我没有让这个工作。
我尝试了 for-each select[....]
<xsl:for-each select="...">
$all != $filtered
$all/node() != $filtered/node()
$all[node() != $filtered/node()]
$all[not($filtered)]
... and some other
谁能指出我的失败之处。
这一定是有可能的,但我想我就是只见树木不见森林。
谢谢
【问题讨论】: