• Python面试题:如何在 Python 中解析 XML 文件?


    在 Python 中解析 XML 文件可以使用内置的 xml.etree.ElementTree 模块。以下是一个示例,展示了如何使用这个模块解析 XML 文件:

    1. 读取 XML 文件:
    import xml.etree.ElementTree as ET
    
    # 读取 XML 文件
    tree = ET.parse('example.xml')
    root = tree.getroot()
    
    # 打印根元素的标签
    print(root.tag)
    
    1. 遍历 XML 树:
    # 遍历 XML 树
    for child in root:
        print(child.tag, child.attrib)
        for subchild in child:
            print(subchild.tag, subchild.text)
    
    1. 查找特定元素:
    # 查找特定元素
    for element in root.findall('element_name'):
        print(element.tag, element.attrib)
        for subelement in element:
            print(subelement.tag, subelement.text)
    
    1. 获取元素的属性和文本:
    # 获取元素的属性和文本
    for element in root.iter('element_name'):
        print('Attribute:', element.get('attribute_name'))
        print('Text:', element.text)
    
    1. 修改 XML 文件:
    # 修改元素的文本
    for element in root.iter('element_name'):
        element.text = 'new text'
    
    # 保存修改后的 XML 文件
    tree.write('modified_example.xml')
    
    1. 创建新的 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 文件,遍历其内容并提取信息。根据具体需求,可以进一步修改和扩展解析逻辑。

  • 相关阅读:
    『第六章』三见倾情:初识小雨燕(下)
    docker部署Jenkins与任务创建【七千字超详细指南】
    systrace使用注意事项
    贪心算法--装箱问题
    老板要我写个APP自动化--准备阶段--01
    一、Hadoop3.1.3集群搭建
    js的变量赋值的问题
    前端基础学习——你必须掌握的CSS的知识
    代码随想录二刷第一天(Python)
    关于数据链路层(初步)
  • 原文地址:https://blog.csdn.net/bifengmiaozhuan/article/details/140340390