Python:使用minidom查找包含特定文本的节点
我现在遇到了一段这样的XML内容:
<ID>345754</ID>
这段内容是有层级结构的。我已经解析了这个XML,现在想通过搜索“345754”来找到ID节点。
2 个回答
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)对于一个元素节点,.nodeValue
的值会是None
,你需要访问包含你想要的值的元素节点内部的文本节点。
4
xmldoc = minidom.parse('your.xml')
matchingNodes = [node for node in xmldoc.getElementsByTagName("id") if node.nodeValue == '345754']
另外可以参考: