2015-10-21 125 views
1

的HTML下的所有元素,而不僅僅是元素是這樣的:LXML XPATH給當前節點

<body> 
<div class="div_a"> 
    <ul class="ul"> 
    <li>li</li> 
    <li>li</li> 
    </ul> 
</div> 
<div class="div_b"> 
    <a>link</a> 
    <ul> 
    <li>div_b li</li> 
    </ul> 
</div> 
</body> 

試圖讓div_a的李

node = page.xpath("//div[@class='div_a']") 
li1 = node.xpath("//li") 

但LI1得到了所有li元素在頁面中不僅僅是div_a的。我無法確定問題是什麼。

回答

0

XPATH - //li - 實際上是從根元素中獲取元素,因此您可以獲得全部li。如果您只想使用node中的元素,則應該給出相對XPATH。實施例 -

li1 = node.xpath(".//li") 

在上述.意味着電流元件,這將是div元件與class屬性作爲'div_a'

+0

YES!得到它了 !而且我知道 。意味着當前元素或當前文件夾 – vose

+0

非常thx爲您解決了我的語言問題^。 ^(我的英文很差) 祝你有個美好的一天~~~ – vose

+0

很高興能幫到你! :-) –

0

修復你的第二個XPath是相對的而不是絕對的Anand suggests,或簡單地用一個單一的XPath獲得li元素擺在首位:

li1 = page.xpath("//div[@class='div_a']//li")