2010-02-06 101 views
22

什麼是XPath表達式選擇<link>元素與type="application/rss+xml"ORtype="application/atom+xml"(RSS和Atom供稿)XPath謂詞中的'OR'運算符?

  • link[@rel='alternate'][@type='application/rss+xml']選擇RSS源
  • link[@rel='alternate'][@type='application/atom+xml']選擇Atom供稿

但是,什麼是單個XPath表達式用於選擇它們兩個?

謝謝。

回答

46

使用:

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

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

您還可以使用聯盟來完成這個

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

or會做。

12

,如果你想獲得幻想和使用XPath 2.0,它是更優雅(但可能造成混亂,這取決於誰可能是閱讀的代碼)把它寫這樣的:

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

這樣做的原因是XPath 2.0將'='重新定義爲應用於序列,這意味着如果比較左側序列中的項目和右側序列中的項目時出現一個匹配,則上述比較返回true。如果你想要比較的東西的列表是動態的,這可能非常有用。