我想選擇一個網頁上的UL標籤和p標籤中的所有文本。我發現很難同時選擇兩者。我可以單獨選擇每個沒有問題。這是我迄今爲止的嘗試:如何在XPath中使用和運算符?
('//p and ul');
('//p::ul');
我也試圖選擇一個特定的列表。網頁上有多個列表,但我只對一個列表感興趣。我該如何去選擇一個頁面上的所有列表,這些列表位於具有特定ID的標記內,例如
<div id="thisistheid"
<ul....
感謝您的任何幫助。
我想選擇一個網頁上的UL標籤和p標籤中的所有文本。我發現很難同時選擇兩者。我可以單獨選擇每個沒有問題。這是我迄今爲止的嘗試:如何在XPath中使用和運算符?
('//p and ul');
('//p::ul');
我也試圖選擇一個特定的列表。網頁上有多個列表,但我只對一個列表感興趣。我該如何去選擇一個頁面上的所有列表,這些列表位於具有特定ID的標記內,例如
<div id="thisistheid"
<ul....
感謝您的任何幫助。
正如我在評論中提及,我認爲你需要使用//p and //ul
,但我不能肯定。
我當然可以回答你的第二個問題://div[@id='thisistheid']//ul
只有在#thisistheid
的後裔纔會選擇ul
。你也可以使用/ul
來代替//ul
只允許一個級別的深度(如果你有嵌套列表很有用)
謝謝。兩個答案都起到了一定作用 –
是布爾表達式:
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
你的答案是謝謝你的答案。 –
我相信你需要在兩側使用'//'位,比如'// p和//ul',但我不確定。 –