如何使用ElemenTree在Python中读取XML文件?
我有一个XML文件,如下所示:如何使用ElemenTree在Python中读取XML文件?,python,python-3.x,xml,elementtree,Python,Python 3.x,Xml,Elementtree,我有一个XML文件,如下所示: <?xml version="1.0"?> -<Object> <ID>Object_01</ID> <Location>Manchester</Location> <Date>01-01-2020</Date> <Time>15u59m05s</Time> -<Max_25Hz&g
<?xml version="1.0"?>
-<Object>
<ID>Object_01</ID>
<Location>Manchester</Location>
<Date>01-01-2020</Date>
<Time>15u59m05s</Time>
-<Max_25Hz>
<25Hz>0.916631065043311</25Hz>
<25Hz>0.797958008447961</25Hz>
</Max_25Hz>
-<Max_75Hz>
<75Hz>1.96599232706463</75Hz>
<75Hz>1.48317837078523</75Hz>
</Max_75Hz>
</Object>
预期输出:
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
tree = ET.ElementTree(ET.fromstring(X))
root = tree.getroot()
for elem in root:
print(elem.text) #! Access them Here
for subelem in elem:
print(subelem.text)
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
收到的输出:
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
tree = ET.ElementTree(ET.fromstring(X))
root = tree.getroot()
for elem in root:
print(elem.text) #! Access them Here
for subelem in elem:
print(subelem.text)
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
我尝试对.attributes
执行相同的操作,希望收到所有的“列”名称,但随后收到:
{}
{}
{}
{}
您可以直接在for循环上方访问它们 Ex:
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
tree = ET.ElementTree(ET.fromstring(X))
root = tree.getroot()
for elem in root:
print(elem.text) #! Access them Here
for subelem in elem:
print(subelem.text)
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
输出:
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
tree = ET.ElementTree(ET.fromstring(X))
root = tree.getroot()
for elem in root:
print(elem.text) #! Access them Here
for subelem in elem:
print(subelem.text)
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
你可以试试看。
它几乎是json模块的替代品。这允许将xml文件读入pythondict
。这大大简化了对xml内容的访问
比如:
from xmldict import *
root = r'c:\data\FF\Desktop\My_files\XML-files\Object_01.xml'
with open(root) as file:
xmlStr = file.read()
xmldict = xml.parse(xmlStr)
print (xmldict['Object']['Id'])
谢谢,那么打印所有“column”名称如何?使用
.tag
ex:elem.tag
或subelem.tag
太好了!非常感谢。那么attrib
和tag
之间有什么区别呢?