【问题标题】:Python: Using minidom to search for nodes with a certain textPython:使用 minidom 搜索具有特定文本的节点
【发布时间】:2009-04-01 16:53:41
【问题描述】:

我目前遇到的 XML 看起来像这样:

<ID>345754</ID>

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

【问题讨论】:

    标签: python xml minidom


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      xmldoc = minidom.parse('your.xml')
      matchingNodes = [node for node in xmldoc.getElementsByTagName("id") if node.nodeValue == '345754']
      

      另见:

      【讨论】:

      • 我很确定这不会起作用 - 你测试过吗? nodeValue 通常在元素节点上设置为“无”(如您的链接之一所述)。我从来没有发现它有任何用处 - 必须深入到文本节点子节点。
      猜你喜欢
      • 2011-03-01
      • 2012-11-15
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多