如何确定 XML 文档的根标签名称
How to determine what the root tag name is for a XML document
我想知道如何确定 XML 文档的根标签使用的是什么 xml.dom.minidom
。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child1></child1>
<child2></child2>
<child3></child3>
</root>
在上面的示例 XML 中,我的根标签可能是 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,如果可能的话,我更愿意使用标准库。
对于您注释为 Where I am stuck
的行,下面应将 XML 文档的根标记的值赋给变量 theNameOfTheRootElement
:
theNameOfTheRootElement = xml.documentElement.tagName
这是我上次处理 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)
我想知道如何确定 XML 文档的根标签使用的是什么 xml.dom.minidom
。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child1></child1>
<child2></child2>
<child3></child3>
</root>
在上面的示例 XML 中,我的根标签可能是 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,如果可能的话,我更愿意使用标准库。
对于您注释为 Where I am stuck
的行,下面应将 XML 文档的根标记的值赋给变量 theNameOfTheRootElement
:
theNameOfTheRootElement = xml.documentElement.tagName
这是我上次处理 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)