xslt:进行否定选择的最简单方法是啥?

Posted

技术标签:

【中文标题】xslt:进行否定选择的最简单方法是啥?【英文标题】:xslt: whats the easiest way to do a negated selection?xslt:进行否定选择的最简单方法是什么? 【发布时间】:2019-05-13 08:57:06 【问题描述】:

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

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

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

【问题讨论】:

您所说的“身份证损坏”是什么意思? @Andersson 错过了查找 你能分享你输入数据的sn-p吗?它会让你清楚地知道你到底想做什么。 xsl:key 是@Martin 回答的最佳选择和更快的执行速度 另见***.com/questions/10534882/… 【参考方案1】:

我怀疑你想要

<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))]"/>

【讨论】:

以上是关于xslt:进行否定选择的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 从选择下拉列表中删除所有条目的最简单方法是啥?

进行简单 IP 地址比较的最高效方法是啥?

使用 Python 进行 SSH 的最简单方法是啥?

使用 CSHTML 进行自动完成的最简单方法是啥

根据Java中的值对地图进行排序的最简单方法是啥?

检测图像中矩形的最简单*正确*方法是啥?