Python 3.x 如何为Minidom中的特定节点使用getElementsByTagName
我的XML看起来像这样Python 3.x 如何为Minidom中的特定节点使用getElementsByTagName,python-3.x,xml,elementtree,getelementsbytagname,minidom,Python 3.x,Xml,Elementtree,Getelementsbytagname,Minidom,我的XML看起来像这样 <TOPIC> <LIST> <Area>JKH</Area> <USED> <type id='123' /> <type id='345' /> </USED> <DEMAND> <type id='809' /&
<TOPIC>
<LIST>
<Area>JKH</Area>
<USED>
<type id='123' />
<type id='345' />
</USED>
<DEMAND>
<type id='809' />
<type id='321' />
</DEMAND>
<CLOSED>
<type id='456' />
<type id='765' />
</CLOSED>
</LIST>
</TOPIC>
但这是打印所有id
值,如下所示
123
345
809
321
456
765
如何仅获取
标记下的809
和321
。我可以在ElementTree
中给出路径,但不确定如何在getElementsByTagName
中给出路径?甚至在小型游戏中也可以吗?太好了。这就是我要找的for@Avinash需求越复杂,选择支持XPath的DOM实现(如ElementTree)就越有利。XPath//DEMAND/type/@id
将替换这个嵌套循环。这是一个非常有效的观点。我会记下来的。
for demand in root.getElementsByTagName('DEMAND'):
for tp in demand.getElementsByTagName('type'):
print(tp.getAttribute("id"))
for demand in root.getElementsByTagName('DEMAND'):
for tp in demand.getElementsByTagName('type'):
print(tp.getAttribute("id"))