2012-10-08 40 views
0

我还没有使用XPath,所以请耐心等待。我有一个包含两个表单的HTML文件,每个表单都包含一些输入/选择元素。与lxml.html一起使用XPath

In [146]: len(doc.xpath('//input | //select')) 
Out[146]: 14 

In [147]: len(doc.xpath('//form')) 
Out[147]: 2 

是否有通过表单的方式来循环,并找到相应的输入/ select元素?目前它将所有元素返回两次。

In [149]: for e in doc.xpath('//form'): 
    ...:  print len(e.xpath('//input | //select')) 
    ...:  
14 
14 

回答

2

我不知道在Python的XPath集成,但我认为你可以尝试:

e.xpath('.//input | .//select') 

在for循环。

e是连接到整个文档的节点。当你对它执行XPath时,你应该停留在这种情况下。当您使用//时,您处于文档上下文中。

+0

@ Vincent Biragnet - 谢谢,那就是我正在寻找的。 – root