2015-10-21 89 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")