3

基本上我想要的是这样的东西,它可以找到所有无法查找 ID 的节点(“断开的链接”):

<xsl:variable name="failedIDLookups" select="//inventory/box[@boxtypeID != //boxtypes/@ID]"/>

但这并没有按预期工作 - 我想语法是错误的,正确的方法应该是什么?

4

1 回答 1

4

我怀疑你想要

<xsl:variable name="failedIDLookups" select="//inventory/box[not(@boxtypeID = //boxtypes/@ID)]"/>

然后可以使用密钥声明(作为 的子项xsl:stylesheet)对其进行优化

<xsl:key name="boxtypes-ref" match="boxtypes" use="@ID"/>

<xsl:variable name="failedIDLookups" select="//inventory/box[not(key('boxtypes-ref', @boxtypeID))]"/>
于 2018-12-12T09:57:13.513 回答