Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将XPath与lxml.html一起使用_Python_Html_Xpath_Lxml - Fatal编程技术网

Python 将XPath与lxml.html一起使用

Python 将XPath与lxml.html一起使用,python,html,xpath,lxml,Python,Html,Xpath,Lxml,我没有太多使用XPath,所以请容忍我。我有一个HTML文件,它包含两个表单,每个表单都包含一些输入/选择元素 In [146]: len(doc.xpath('//input | //select')) Out[146]: 14 In [147]: len(doc.xpath('//form')) Out[147]: 2 是否有方法循环表单并找到相应的输入/选择元素?此时,它将两次返回所有元素 In [149]: for e in doc.xpath('//form'): ...

我没有太多使用XPath,所以请容忍我。我有一个HTML文件,它包含两个表单,每个表单都包含一些输入/选择元素

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

In [147]: len(doc.xpath('//form'))
Out[147]: 2
是否有方法循环表单并找到相应的输入/选择元素?此时,它将两次返回所有元素

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

我不知道python中的XPath集成,但我认为您可以尝试:

e.xpath('.//input | .//select')
在你的for循环中

e
是附加到整个文档的节点。当您对它执行XPath时,应该保持在这个上下文中。当您使用
/
时,您就处于文档上下文中。

@Vincent Biragnet--谢谢,这正是我要找的。