Python

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

2020-03-05  本文已影响0人  xianling_he

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

读取products.xml文件

from xml.etree.ElementTree import parse

doc = parse('C:\\PyTest\\Selenium_OpenSchools\\test_selenium\\03-数据存储\\files\\products.xml')

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

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文件中的节点进行迭代读取

上一篇下一篇

猜你喜欢

热点阅读