使用python3解析XML子元素
Use python 3 to parse XML child element
我有一个 XML 文件,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geoEventDefinition guid="3ab37e92-825c-4fdf-afa6-7b7536999ccd">
<fieldDefinitions>
<fieldDefinition name="id" type="String" cardinality="One">
<fieldDefinitionTag>
<name>TRACK_ID</name>
</fieldDefinitionTag>
<fieldDefinitions/>
</fieldDefinition>
<fieldDefinition name="position" type="Group" cardinality="One">
<fieldDefinitions>
<fieldDefinition name="longitude" type="Double" cardinality="One">
<fieldDefinitions/>
</fieldDefinition>
<fieldDefinition name="latitude" type="Double" cardinality="One">
<fieldDefinitions/>
</fieldDefinition>
</fieldDefinitions>
</fieldDefinition>
</fieldDefinitions> </geoEventDefinition>
我正在遍历文件以检索 fieldDefinition 属性(即 {'name': 'id', 'type': 'String', 'cardinality': 'One'}) 使用下面的:
from xml.etree import ElementTree as ET
tree = ET.parse(xmlFile)
root = tree.getroot()
for child in root.iter('fieldDefinition'):
print(child.attrib)
我还需要returnname标签数据(即TRACK_ID)fieldDefinitionTag 如果它存在,但不知道如何去做。
感谢任何帮助。
您可以使用
import xml.etree.ElementTree as ET
tree = ET.parse('xmlFile')
root = tree.getroot()
for child in root.iter("fieldDefinition"):
print(child.attrib)
for n in child.iter("name"):
print(n.text)
它的输出是
{'cardinality': 'One', 'type': 'String', 'name': 'id'}
TRACK_ID
{'cardinality': 'One', 'type': 'Group', 'name': 'position'}
{'cardinality': 'One', 'type': 'Double', 'name': 'longitude'}
{'cardinality': 'One', 'type': 'Double', 'name': 'latitude'}
所以输出所有fieldDefinition
的属性。
我有一个 XML 文件,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geoEventDefinition guid="3ab37e92-825c-4fdf-afa6-7b7536999ccd">
<fieldDefinitions>
<fieldDefinition name="id" type="String" cardinality="One">
<fieldDefinitionTag>
<name>TRACK_ID</name>
</fieldDefinitionTag>
<fieldDefinitions/>
</fieldDefinition>
<fieldDefinition name="position" type="Group" cardinality="One">
<fieldDefinitions>
<fieldDefinition name="longitude" type="Double" cardinality="One">
<fieldDefinitions/>
</fieldDefinition>
<fieldDefinition name="latitude" type="Double" cardinality="One">
<fieldDefinitions/>
</fieldDefinition>
</fieldDefinitions>
</fieldDefinition>
</fieldDefinitions> </geoEventDefinition>
我正在遍历文件以检索 fieldDefinition 属性(即 {'name': 'id', 'type': 'String', 'cardinality': 'One'}) 使用下面的:
from xml.etree import ElementTree as ET
tree = ET.parse(xmlFile)
root = tree.getroot()
for child in root.iter('fieldDefinition'):
print(child.attrib)
我还需要returnname标签数据(即TRACK_ID)fieldDefinitionTag 如果它存在,但不知道如何去做。
感谢任何帮助。
您可以使用
import xml.etree.ElementTree as ET
tree = ET.parse('xmlFile')
root = tree.getroot()
for child in root.iter("fieldDefinition"):
print(child.attrib)
for n in child.iter("name"):
print(n.text)
它的输出是
{'cardinality': 'One', 'type': 'String', 'name': 'id'}
TRACK_ID
{'cardinality': 'One', 'type': 'Group', 'name': 'position'}
{'cardinality': 'One', 'type': 'Double', 'name': 'longitude'}
{'cardinality': 'One', 'type': 'Double', 'name': 'latitude'}
所以输出所有fieldDefinition
的属性。