我有這樣的XPath表達式:有助於瞭解XPath的
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
?
其實我不懂符號|
我有這樣的XPath表達式:有助於瞭解XPath的
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
?
其實我不懂符號|
XPath中的管道(|)組合表達式。因此,這將返回鏈接元件的任何鏈接的href屬性(相匹配的謂語)和文本內容
所以給喜歡
<link>test</link>
<link href="http://www.google.com">Google</link>
<link rel="zzzz" href="http://www.stackoverflow.com">Stack Overflow</link>
片段,你會得到:
test
http://www.google.com
Google
Stack Overflow
符號|是一個工會。它抓取所有匹配左側或右側的元素。
什麼了XPath說的是:
還搶(因爲聯盟):
一種奇怪的XPath,但它就是這樣。
非常感謝。 – Nikita 2010-09-28 15:08:56
Acctually我不明白 符號|
正如W3 XPath 2.0 Spec定義:
•工會和|。相當於運營商 。他們以兩個節點 序列作爲操作數,並返回包含 在任一操作數中出現的所有節點的 序列。
當然,「聯合」(英語單詞)操作者在XPath 2.0和XPath 1.0中我們只有其早先的同義詞,由|
字符表示才被加入。
所以,在的特定情況下:
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
XPath表達式上述選擇的兩組聯合:link[@rel='alternate' and @type='text/html' or not(@rel)]/@href
所有節點通過選擇
所有節點,選擇者:link/text()
聯合是套(和數學)理論中的標準操作,雖然符號'U'用於表示聯合那裏。
要從Wikipedia引用定義:
兩組A和B的並集是 集合,其是在A或B中 點(或兩者):
一個簡單的例子:
A = {1,2,3,4,5,6}
B = {1,5,6,7,8}
A U B = {1,2,3,4,5,6,7,8}
好問題(+1)。請參閱我的答案以獲得準確的定義和解釋。 :) – 2010-09-28 20:07:08