Python:使用minidom搜索具有特定文本的节点

时间:2009-04-01 16:53:42

标签: python xml minidom

我目前面临的XML看起来像这样:

<ID>345754</ID>

这包含在层次结构中。我已经解析了xml,并希望通过搜索“345754”找到ID节点。

2 个答案:

答案 0 :(得分:10)

vartec的回答需要纠正(对不起,我不确定我能做到这一点),它应该是:

xmldoc = xml.dom.minidom.parse('your.xml')
matchingNodes = [node for node in xmldoc.getElementsByTagName("ID") if 
node.firstChild.nodeValue == '345754']

它有两个问题:(i)标签名称区分大小写,因此"id"上的匹配不起作用,(ii)元素节点.nodeValueNone ,您需要访问包含所需值的元素节点内的文本节点。

答案 1 :(得分:4)

xmldoc = minidom.parse('your.xml')
matchingNodes = [node for node in xmldoc.getElementsByTagName("id") if node.nodeValue == '345754']

另见: