【问题标题】: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 回答的最佳选择和更快的执行速度

标签: xslt xpath saxon xslt-3.0 xpath-3.0


【解决方案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))]"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多