Python:使用minidom查找包含特定文本的节点

2 投票
2 回答
8540 浏览
提问于 2025-04-15 11:05

我现在遇到了一段这样的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']

另外可以参考:

撰写回答