【问题标题】:'OR' operator in XPath predicate?XPath 谓词中的“或”运算符?
【发布时间】:2011-01-13 18:40:42
【问题描述】:

type="application/rss+xml" 选择<link> 元素的XPath 表达式是什么OR type="application/atom+xml"(RSS 和Atom 提要)

  • link[@rel='alternate'][@type='application/rss+xml'] 选择 RSS 源
  • link[@rel='alternate'][@type='application/atom+xml'] 选择 Atom 提要

但是选择它们的单个 XPath 表达式是什么?

谢谢。

【问题讨论】:

    标签: xpath rss atom-feed


    【解决方案1】:

    使用:

    link[@rel='alternate'][@type='application/rss+xml' or @type='application/atom+xml'] 
    

    http://www.w3.org/TR/xpath/#NT-OrExpr

    你也可以使用 union 来完成这个

    link[@rel='alternate'][@type='application/rss+xml']|link[@rel='alternate'][@type='application/atom+xml']
    

    但是or 可以。

    【讨论】:

      【解决方案2】:

      如果您想花哨并使用 XPath 2.0,这样写会更优雅(但可能会令人困惑,具体取决于可能正在阅读代码的人):

      link[@rel='alternate'][@type = ('application/rss+xml', 'application/atom+xml')] 
      

      原因是 XPath 2.0 重新定义了 '=' 以应用于序列,这意味着在比较左侧序列中的项目与比较右侧的项目时,如果有一个匹配项,则上述比较返回 true顺序。如果您要比较的事物列表是动态的,这将非常有用。

      【讨论】:

        猜你喜欢
        • 2022-11-30
        • 2015-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-30
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        相关资源
        最近更新 更多