xslt:进行否定选择的最简单方法是什么?
xslt: whats the easiest way to do a negated selection?
基本上我想要的是找到无法查找 ID 的所有节点 ('broken links') :
<xsl:variable name="failedIDLookups" select="//inventory/box[@boxtypeID != //boxtypes/@ID]"/>
但这没有按预期工作 - 我想语法是错误的,正确的做法应该是什么?
我怀疑你想要
<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))]"/>
基本上我想要的是找到无法查找 ID 的所有节点 ('broken links') :
<xsl:variable name="failedIDLookups" select="//inventory/box[@boxtypeID != //boxtypes/@ID]"/>
但这没有按预期工作 - 我想语法是错误的,正确的做法应该是什么?
我怀疑你想要
<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))]"/>