如何使用 ElemenTree 读取 Python 中的 XML 个文件?
How to use ElemenTree for reading XML files in Python?
我有一个 XML 文件,如下所示:
<?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>
我还是不太明白attributes
和text
的区别。使用以下代码,我尝试使用 text
.
接收所有值
import xml.etree.ElementTree as ET
root = r'c:\data\FF\Desktop\My_files\XML-files\Object_01.xml'
tree = ET.parse(root)
root = tree.getroot()
for elem in root:
for subelem in elem:
print(subelem.text)
预期输出:
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
收到输出:
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
我尝试对 .attributes
做同样的事情,希望收到所有 'column' 的名字,但后来我收到了:
{}
{}
{}
{}
您可以直接在 for-loop 上方访问它们。
例如:
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
你可以试试https://github.com/martinblech/xmltodict。
它几乎可以替代 json 模块。这允许将 xml 文件读入 python dict
。这大大简化了对 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'])
我有一个 XML 文件,如下所示:
<?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>
我还是不太明白attributes
和text
的区别。使用以下代码,我尝试使用 text
.
import xml.etree.ElementTree as ET
root = r'c:\data\FF\Desktop\My_files\XML-files\Object_01.xml'
tree = ET.parse(root)
root = tree.getroot()
for elem in root:
for subelem in elem:
print(subelem.text)
预期输出:
Object_01
Manchester
01-01-2020
15u59m05s
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
收到输出:
0.916631065043311
0.797958008447961
1.96599232706463
1.48317837078523
我尝试对 .attributes
做同样的事情,希望收到所有 'column' 的名字,但后来我收到了:
{}
{}
{}
{}
您可以直接在 for-loop 上方访问它们。
例如:
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
你可以试试https://github.com/martinblech/xmltodict。
它几乎可以替代 json 模块。这允许将 xml 文件读入 python dict
。这大大简化了对 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'])