2013-11-03 39 views
0

我想選擇一個網頁上的UL標籤和p標籤中的所有文本。我發現很難同時選擇兩者。我可以單獨選擇每個沒有問題。這是我迄今爲止的嘗試:如何在XPath中使用和運算符?

('//p and ul'); 
('//p::ul'); 

我也試圖選擇一個特定的列表。網頁上有多個列表,但我只對一個列表感興趣。我該如何去選擇一個頁面上的所有列表,這些列表位於具有特定ID的標記內,例如

<div id="thisistheid" 
<ul.... 

感謝您的任何幫助。

+0

我相信你需要在兩側使用'//'位,比如'// p和//ul',但我不確定。 –

回答

1

正如我在評論中提及,我認爲你需要使用//p and //ul,但我不能肯定。

我當然可以回答你的第二個問題://div[@id='thisistheid']//ul只有在#thisistheid的後裔纔會選擇ul。你也可以使用/ul來代替//ul只允許一個級別的深度(如果你有嵌套列表很有用)

+0

謝謝。兩個答案都起到了一定作用 –

1
And and Or

是布爾表達式:

An和表達通過評估每個操作數,其值變換爲布爾彷彿通過調用所述布爾函數評估。如果兩個值均爲真,則結果爲true,否則爲false。如果左操作數計算結果爲false,則不計算右操作數。

既然一個節點不能同時是P和UL,你的測試永遠不會返回true。

嘗試聯合運算符(PathExpression)代替:

//p | //ul 

這會給你所有的p和文檔

在UI元素要獲得一個節點與特定的ID,你可以使用id() function

id('thisistheid') 

如果這不因任何原因失效,你仍然可以使用一個屬性測試,如

//div[@id='thisistheid'] 

或者 - 如果你使用的是DOM API,您可以使用getElementById()

你可以找到一個易於遵循的XPath教程在http://schlitt.info/opensource/blog/0704_xpath.html

+0

你的答案是謝謝你的答案。 –

相關問題