【发布时间】:2016-07-18 06:32:04
【问题描述】:
我想获取 xml 文件中每个元素的 xpath。
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?
【问题讨论】:
标签: python xml xpath xml-namespaces elementtree