Python minidom可以';不解析xml
我有如下xml.file,我正试图用PythonMinidom解析它,但存在一些问题。我想提取一些属性,因为标记名中包含了属性名:Python minidom可以';不解析xml,python,xml,minidom,Python,Xml,Minidom,我有如下xml.file,我正试图用PythonMinidom解析它,但存在一些问题。我想提取一些属性,因为标记名中包含了属性名: model= xmldoc.getElementsByTagName('ManagedElementId string = ') 字符串=不是标记名的一部分;您的文档中没有此类标记。删除字符串=部分: >>> from xml.dom import minidom >>> tree = minidom.parseString(s
model= xmldoc.getElementsByTagName('ManagedElementId string = ')
字符串=
不是标记名的一部分;您的文档中没有此类标记。删除字符串=
部分:
>>> from xml.dom import minidom
>>> tree = minidom.parseString(sample)
>>> tree.getElementsByTagName('ManagedElementId')
[<DOM Element: ManagedElementId at 0x1080baef0>]
但是,我强烈建议您远离XMLDOM;您最好在此处使用更简单的:
>从xml.etree导入元素树作为ET
>>>tree=ET.fromstring(示例)
>>>tree.find(“.//ManagedElementId”)
>>>tree.find('.//ManagedElementId').get('string')
‘siu009722’
是什么让你认为getElementsByTagName('ManagedElementId string=')
会起作用?您只能找到标记名,但string=
不是标记名的一部分。我建议不要使用minidom。domapi非常冗长、笨拙,很难使用。改用。好的,我会用ET试试,但是下面的例子我无法得到值,我需要打印还是什么?@user3319356:我使用了一个交互式解释器来响应结果。在脚本中,您必须使用打印,是的。
model= xmldoc.getElementsByTagName('ManagedElementId string = ')
>>> from xml.dom import minidom
>>> tree = minidom.parseString(sample)
>>> tree.getElementsByTagName('ManagedElementId')
[<DOM Element: ManagedElementId at 0x1080baef0>]
>>> node = tree.getElementsByTagName('ManagedElementId')[0]
>>> node.firstChild is None
True
>>> node.getAttribute('string')
u'siu009722'
>>> from xml.etree import ElementTree as ET
>>> tree = ET.fromstring(sample)
>>> tree.find('.//ManagedElementId')
<Element 'ManagedElementId' at 0x1080af950>
>>> tree.find('.//ManagedElementId').get('string')
'siu009722'