Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
minidom中的pythonxml处理_Python_Xml_Xml Parsing_Minidom - Fatal编程技术网

minidom中的pythonxml处理

minidom中的pythonxml处理,python,xml,xml-parsing,minidom,Python,Xml,Xml Parsing,Minidom,我有以下非常简单的XML文件,我想使用minidom快速解析每个设备的imsi元素 <device> <imsi>01010101</imsi> </device> <device> <imsi>123456</imsi> </device> <device> <imsi>9876543</i

我有以下非常简单的XML文件,我想使用minidom快速解析每个设备的imsi元素

    <device>
      <imsi>01010101</imsi>  
    </device>
    <device>
      <imsi>123456</imsi>
    </device>
    <device>
      <imsi>9876543</imsi>
    </device>

    --------------------------
    CODE SNIPPET FOR PARSING
    --------------------------

    doc = xml.dom.minidom.parse("./input.xml")

    for node in doc.getElementsByTagName("device"):
          imsi = node.getElementsByTagName("imsi")
          print str(imsi)
在我引入一个根节点之后,我编写了以下代码,最终得到了一个奇怪的输出。你认为这里出了什么问题

     doc = xml.dom.minidom.parse("./input.xml") 
     for node in doc.getElementsByTagName("device"):
         imsi = node.getElementsByTagName("imsi") 
         print str(imsi) 

    [<DOM Element: imsi at 0x828636c>] 
    [<DOM Element: imsi at 0x82864ac>]  
    [<DOM Element: imsi at 0x828660c>] 

您的示例不是有效的XML文档,因为它没有根节点。插入一个以获得如下内容

<devices>
  <device>
    <imsi>01010101</imsi>  
  </device>
  <device>
    <imsi>123456</imsi>
  </device>
  <device>
    <imsi>9876543</imsi>
  </device>
</devices>

01010101
123456
9876543

您的xml无效。在xml中插入根节点

你可以在这里检查有效性


01010101
123456
9876543

如果您希望您的xml完全有效,请将
文档类型声明添加到xml中。

请在添加注释部分的问题代码看起来不好中查看我的上述注释。塔克斯。
    for node in doc.getElementsByTagName("device"):
        imsi = node.getElementsByTagName("imsi")
        for a in imsi:
                Title= a.firstChild.data
                print Title
<devices>
  <device>
    <imsi>01010101</imsi>  
  </device>
  <device>
    <imsi>123456</imsi>
  </device>
  <device>
    <imsi>9876543</imsi>
  </device>
</devices>
<document>
    <device>
      <imsi>01010101</imsi>  
    </device>
    <device>
      <imsi>123456</imsi>
    </device>
    <device>
      <imsi>9876543</imsi>
    </device>
</document>