【问题标题】:Selecting all attributes except some via XPath通过 XPath 选择除某些属性之外的所有属性
【发布时间】:2014-06-06 20:02:12
【问题描述】:

我想选择除idclass 属性之外的所有属性节点。我在这里做错了什么?

/x:html/x:body/x:*/@*[(local-name() != 'id') and (local-name() != 'class')]

【问题讨论】:

  • 看起来它应该可以工作 - 它会给你带来什么结果?是匹配太多还是太少?
  • 可能是/x:html/x:body//x:*/@*[(local-name() != 'id') and (local-name() != 'class')]?

标签: debugging xpath xmlnode set-difference


【解决方案1】:

在谓词中使用local-name() 方法过滤掉idclass。例如,在浏览器控制台中的 stackoverflow 页面本身上运行它:

$x("//@*[local-name() != 'id' and local-name() != 'class']")

及其逆确认:

$x("//@*[local-name() = 'id' or local-name() = 'class']")

参考文献

【讨论】:

  • @JLRishe 没有提供足够的代码,因此用$x() 控制台 API 替换命名空间至少可以将问题与 XPath 查询隔离开来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
相关资源
最近更新 更多