我正在尝试以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"
如何获取其中包含多个空标记的元素的数据?
请建议我需要对我的计划进行哪些更改。
答案 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()