minidom中的pythonxml处理
我有以下非常简单的XML文件,我想使用minidom快速解析每个设备的imsi元素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
<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>