美文网首页Python
Python基础(29) - 读取XML数据及节点

Python基础(29) - 读取XML数据及节点

作者: xianling_he | 来源:发表于2020-03-05 20:11 被阅读0次

    在files目录中有一个products.xml文件,要求读取该文件中products节点所有子节点的值及子节点的属性值

    读取products.xml文件

    • 使用parse,导入模块xml.etree.ElementTree
    from xml.etree.ElementTree import parse
    
    doc = parse('C:\\PyTest\\Selenium_OpenSchools\\test_selenium\\03-数据存储\\files\\products.xml')
    

    读取xml文件中的每一个元素

    • 使用for 循环一条条的读取值
    for item in doc.iterfind('products/product'):
        id = item.findtext('id')
        name = item.findtext('name')
        price = item.findtext('price')
        uuid = item.get('uuid')
    

    打印出每条读取后的属性及值

        print('uuid=',uuid)
        print('id=',id)
        print('name=',name)
        print('price=',price)
        print('-'*10)
    

    以下是完整的读取xml文件节点的代码

    from xml.etree.ElementTree import parse
    
    doc = parse('C:\\PyTest\\Selenium_OpenSchools\\test_selenium\\03-数据存储\\files\\products.xml')
    
    print(type(doc))
    
    for item in doc.iterfind('products/product'): #迭代读取xml文件中的每个节点值
        id = item.findtext('id')  #输出id属性
        name = item.findtext('name') #输出name属性
        price = item.findtext('price') #输出price属性
        uuid = item.get('uuid')  #输出uuid属性
        print('uuid=',uuid)
        print('id=',id)
        print('name=',name)
        print('price=',price)
        print('-'*10)
    
    读取XML数据及节点.png

    将products.xml文件内容附上

    <root>
        <products>
            <product uuid = '1234'>
                <id>10000</id>
                <name>iPhone9</name>
                <price>9999</price>
            </product>
            <product uuid = '4321'>
                <id>20000</id>
                <name>mate20</name>
                <price>5555</price>
            </product>
            <product uuid = '5678'>
                <id>30000</id>
                <name>mateX</name>
                <price>3099</price>
            </product>
        </products>
    </root>
    

    总结

    1.通过parse函数可以读取xml文档,该函数返回ElementTree类型的对象
    2.通过返回对象的iterfind方法可以对xml文件中的节点进行迭代读取

    相关文章

      网友评论

        本文标题:Python基础(29) - 读取XML数据及节点

        本文链接:https://www.haomeiwen.com/subject/bowcrhtx.html