• 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 文件,遍历其内容并提取信息。根据具体需求,可以进一步修改和扩展解析逻辑。

  • 相关阅读:
    惠普1020打印机驱动安装教程
    【K8S专栏】Docker容器技术剖析
    刷题记录(NC13822 Keep In Line,NC16663 合并果子,NC16430 蚯蚓)
    解开索引迷局:聚簇索引与非聚簇索引的差异大揭秘!
    PCIe(二)——TLP包构成
    【数据库】MySQL分页查询
    用Vue编写一个简单的仿Explorer文件管理器
    智慧公厕改变城市生活,厕所革命标杆应用解决方案
    vivo大规模 Kubernetes 集群自动化运维实践
    Android之 SVG绘制
  • 原文地址:https://blog.csdn.net/bifengmiaozhuan/article/details/140340390