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

  • 相关阅读:
    工程师新红利,我国预计到2025年培养20万名这类人才
    【latex】usepackage的各种包简介(持更)
    CSRF 攻击详解
    使用js怎么设置视频背景
    NX/UG二次开发—UF_MODL_ask_bounding_box_exact浅析
    Multi-Video Temporal Synchronization论文笔记
    微服务绕不过的坎-服务雪崩
    OSPF 配置实战
    测试工程师应具备何种心态?
    2022年湖北助理工程师职称评审费用是多少?多久出证呢?甘建二
  • 原文地址:https://blog.csdn.net/bifengmiaozhuan/article/details/140340390