Я хотел получить xpath каждого элемента в xml файле.
XML-файл:
<root
xmlns="http://www.w3.org/TR/html4/"
xmlns:h="http://www.w3schools.com/furniture">
<table>
<tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</tr>
</table>
</root>
Код Python: поскольку нулевой префикс в пространстве имен по умолчанию не разрешен, я использовал для этого свой собственный префикс.
from lxml import etree
root=etree.parse(open("MyData.xml",'r'))
ns={'df': 'http://www.w3.org/TR/html4/', 'types': 'http://www.w3schools.com/furniture'}
for e in root.iter():
b=root.getpath(e)
print b
r=root.xpath(b,namespaces=ns)
#i need both b and r here
xpath выглядит так (вывод b)
/*
/*/*[1]
/*/*[1]/*[1]
/*/*[1]/*[1]/h:td
Я не могу правильно получить xpath для элементов, имеющих пространство имен по умолчанию, он отображается как * для этих имен элементов. Как правильно получить xpath?