Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
Python minidom可以';不解析xml_Python_Xml_Minidom - Fatal编程技术网

Python minidom可以';不解析xml

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

我有如下xml.file,我正试图用PythonMinidom解析它,但存在一些问题。我想提取一些属性,因为标记名中包含了属性名:

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'