从xml文件中获取元素数据?

时间:2017-03-22 06:37:33

标签: python xml xmldom

我正在尝试以XML格式获取元素标记的文本数据。

我的XML文件是:

<root>

<subroot>

<child1/>
<child2/>
Data of subroot

</subroot>

<root>

我编写了以下python代码来获取数据:

import xml.dom.minidom as m

dom.m.parse("myXMLfile.xml")
var=getElementsByTagName("subroot")[0]
var_data=var.childNodes[0].data                # to get the data

但是这段代码产生错误:childNodes is not defined for element "var"

如何获取其中包含多个空标记的元素的数据?

请建议我需要对我的计划进行哪些更改。

1 个答案:

答案 0 :(得分:0)

这将获得所有元素数据(包括多行数据):

import xml.dom.minidom as m

dom = m.parse("myXMLfile.xml")
var = dom.getElementsByTagName('subroot')
elem_data = "".join(var_data.nodeValue.lstrip() for var_data in var[0].childNodes if var_data.nodeType == var_data.TEXT_NODE)

print elem_data    ## Data of subroot

.lstrip()用于删除elem_data中的额外空格,这是xml文件格式化的结果。如果您想要<subroot>元素中显示的空白区域,请移除.lstrip()