如何确定XML文档的根标记名称

时间:2018-01-31 13:34:21

标签: python xml python-3.x xml-parsing minidom

我很想知道如何确定XML文档的根标记使用xml.dom.minidom

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <child1></child1>
    <child2></child2>
    <child3></child3>
</root>

在上面的示例XML中,我的root标签可能是3或4个不同的东西。我想做的就是拉标签,然后使用该值按标签名称获取元素。

def import_from_XML(self, file_name)
    file = open(file_name)
    document = file.read()
    if re.compile('^<\?xml').match(document):
        xml = parseString(document)
        root = ''  # <-- THIS IS WHERE IM STUCK
        elements = xml.getElementsByTagName(root)

我尝试搜索xml.dom.minidom的文档,但是我有点难以理解,而且我找不到任何可以直接回答这个问题的内容。

我正在使用Python 3.6.x,如果可能的话,我更愿意继续使用标准库。

2 个答案:

答案 0 :(得分:1)

对于您评论为Where I am stuck的行,以下内容应将XML文档的根标记值分配给变量theNameOfTheRootElement

theNameOfTheRootElement = xml.documentElement.tagName

答案 1 :(得分:0)

这是我上次处理xml时所做的。我没有使用你使用的方法,但我希望它能帮助你。

import urllib2
from xml.etree import ElementTree as ET
req = urllib2.Request(site)
file=None
try:
    file = urllib2.urlopen(req)
except urllib2.URLError as e:
    print e.reason

data = file.read()
file.close()

root = ET.fromstring(data)
print("root",  root)

for child in root.findall('parent element'):
    print(child.text, child.attrib)