基本上,我想要的是这样的东西,可以找到所有无法查找ID的节点(“断开的链接”):
<xsl:variable name="failedIDLookups" select="//inventory/box[@boxtypeID != //boxtypes/@ID]"/>
但这并不像预期的那样有效——我想语法是错误的,正确的方法应该是什么?
我猜你想要
<xsl:variable name="failedIDLookups" select="//inventory/box[not(@boxtypeID = //boxtypes/@ID)]"/>
然后可以通过密钥声明对其进行优化(作为 xsl:stylesheet )
xsl:stylesheet
<xsl:key name="boxtypes-ref" match="boxtypes" use="@ID"/>
<xsl:variable name="failedIDLookups" select="//inventory/box[not(key('boxtypes-ref', @boxtypeID))]"/>