在 Python 中解析 XML 文件可以使用内置的 xml.etree.ElementTree
模块。以下是一个示例,展示了如何使用这个模块解析 XML 文件:
import xml.etree.ElementTree as ET
# 读取 XML 文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 打印根元素的标签
print(root.tag)
# 遍历 XML 树
for child in root:
print(child.tag, child.attrib)
for subchild in child:
print(subchild.tag, subchild.text)
# 查找特定元素
for element in root.findall('element_name'):
print(element.tag, element.attrib)
for subelement in element:
print(subelement.tag, subelement.text)
# 获取元素的属性和文本
for element in root.iter('element_name'):
print('Attribute:', element.get('attribute_name'))
print('Text:', element.text)
# 修改元素的文本
for element in root.iter('element_name'):
element.text = 'new text'
# 保存修改后的 XML 文件
tree.write('modified_example.xml')
# 创建新的 XML 文件
root = ET.Element('root')
child = ET.SubElement(root, 'child')
child.text = 'child text'
tree = ET.ElementTree(root)
tree.write('new_example.xml')
下面是一个完整的示例,假设我们有一个 XML 文件 example.xml
内容如下:
<root>
<child name="child1">
<subchild>subchild1subchild>
child>
<child name="child2">
<subchild>subchild2subchild>
child>
root>
解析这个文件并打印每个元素的信息:
import xml.etree.ElementTree as ET
# 读取 XML 文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 打印根元素的标签
print('Root tag:', root.tag)
# 遍历 XML 树
for child in root:
print('Child tag:', child.tag, 'Attributes:', child.attrib)
for subchild in child:
print(' Subchild tag:', subchild.tag, 'Text:', subchild.text)
# 查找特定元素
for element in root.findall('child'):
print('Found child tag:', element.tag, 'Attributes:', element.attrib)
for subelement in element:
print(' Subchild tag:', subelement.tag, 'Text:', subelement.text)
# 获取元素的属性和文本
for element in root.iter('child'):
print('Attribute:', element.get('name'))
for subelement in element:
print('Text:', subelement.text)
这段代码会输出:
Root tag: root
Child tag: child Attributes: {'name': 'child1'}
Subchild tag: subchild Text: subchild1
Child tag: child Attributes: {'name': 'child2'}
Subchild tag: subchild Text: subchild2
Found child tag: child Attributes: {'name': 'child1'}
Subchild tag: subchild tag: subchild Text: subchild1
Found child tag: child Attributes: {'name': 'child2'}
Subchild tag: subchild Text: subchild2
Attribute: child1
Text: subchild1
Attribute: child2
Text: subchild2
这个示例展示了如何解析 XML 文件,遍历其内容并提取信息。根据具体需求,可以进一步修改和扩展解析逻辑。