我有一个结构类似于的 XML 文件
<?xml version="1.0"?>
<medias>
<media>
<id>34500</id>
<refid/>
</media>
<media>
<id>34501</id>
<refid>34500</refid>
</media>
<media>
<id>34502</id>
<refid>34500</refid>
</media>
<media>
<id>34503</id>
<refid>34501</refid>
</media>
<media>
<id>34504</id>
<ref/>
</media>
<media>
<id>34505</id>
<refid>34502</refid>
</media>
</medias>
使用 XSL 1.0,我想访问所有未被其他人引用的节点。所以我创建了两个变量
<xsl:variable name="origID" select="media/id/text()"/>
<xsl:variable name="refID" select="media/refid/text()"/>
并查看了如何在这两个元素集之间执行差异操作
<xsl:variable name="diffID" select="$origID[count(. | $refID) != count($refID)]"/>
结果是:
origID 包含 34500、34501、34502、34503、34504、34505
refID 包含 34500、34500、34501、34502
我期望
diffID 将包含 34503、34504、34505
但
diffID 仍然包含 34500、34501、34502、34503、34504、34505。
实现我的目标的最佳方法是获取其 ID 被其他节点引用的所有节点。
提前致谢
安德烈