python3 lxml 如何在 XPath 之后通过属性名称获取属性值

python3 lxml How to get attribute value by name of attribute after XPath

使用 xpath 方法时,如何获取属性 ID 的值(在下面的示例中应该是 "DEF"),它是我的 XPath 结果的子项?

from lxml import etree
from io import StringIO
f = StringIO('<root><row id="DEF">ABC</row></root>')
doc = etree.parse(f)
for c in doc.xpath("/root/row"):
       print (c.tag)
       #print (c.attribute('id').value)
       print (c.value)  #shows ABC  

基于。它说 attrib 将 return 一个属性字典,然后我们可以在字典中进行查找:

   print (c.attrib['id'])

我正在使用 PyCharm,它并没有给我所有的自动完成选项。

试试这个:

for c in doc.xpath("/root/row/@id"):
     print(c)

你的输出应该是 DEF.