我想得到一个XML元素列表,它基于标记名上的第一个和属性值上的第二个。 我使用的是xml.dom库和Python2.7。
虽然第一步很容易完成:
from xml.dom import minidom
xmldoc = minidom.parse(r"C:\File.xml")
PFD = xmldoc.getElementsByTagName("PFD")
PNT = PFD.getElementsByTagName("PNT")
我四处寻找,但找不到第二步的解决办法。有没有类似于.getElementsByAttributeValue
的东西可以给我一个列表来使用?
如果XML看起来像这样
<PFD>
<PNT A="1" B=.../>
<PNT A="1" B=.../>
<PNT A="2" B=.../>
</PFD>
需要列表中A=“1”的所有pnt。
试试这个:
如果不局限于使用xml.dom.minidom,lxml具有更好的搜索功能。注意,lxml不是内置的,需要安装lxml package和非Python依赖项。
例如:
Lxml还通过
element.xpath('query')
支持所有XPath。其他方便的函数包括element.findtext
,它可以找到适当的元素并返回其文本,element.find
和element.findall
,后者返回所有匹配查询的元素的第一个/列表,这些元素使用包含公共查询的XPath子集。如果找不到内置方法,为什么不遍历这些项?
现在将项目添加到列表应该很容易。
相关问题 更多 >
编程相关推荐