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

Python:使用minidom搜索具有特定文本的节点,python,xml,minidom,Python,Xml,Minidom,我目前面临的XML如下所示: <ID>345754</ID> 345754 这包含在层次结构中。我已经解析了xml,希望通过搜索“345754”找到ID节点 另见: vartec的答案需要更正(抱歉,我不确定我能做到这一点),应该是: xmldoc = xml.dom.minidom.parse('your.xml') matchingNodes = [node for node in xmldoc.getElementsByTagName("ID") if

我目前面临的XML如下所示:

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

另见:


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
,您需要访问元素节点内包含所需值的文本节点。

我很确定这不起作用-您测试过吗?在元素节点上,nodeValue通常设置为“None”(正如您的一个链接所述)。我从来没有发现它有任何用处——必须深入到文本节点的子节点。
xmldoc = xml.dom.minidom.parse('your.xml')
matchingNodes = [node for node in xmldoc.getElementsByTagName("ID") if 
node.firstChild.nodeValue == '345754']