欢迎访问宙启技术站
智能推送

Python中基于XML的数据格式转换技术

发布时间:2024-01-08 08:20:13

Python中常用的基于XML的数据格式转换技术有两种:XML解析和XML生成。

首先,我们来看一下XML解析。在Python中,常用的XML解析库有ElementTree和lxml。这里以ElementTree为例进行介绍。

XML解析的过程分为两步:解析XML字符串和访问解析后的数据。

解析XML字符串:

import xml.etree.ElementTree as ET

# 定义XML字符串
xml_str = '''
<bookstore>
    <book category="cooking">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="children">
        <title lang="en">Harry Potter</title>
        <author>J.K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
</bookstore>
'''

# 将XML字符串解析为Element对象
root = ET.fromstring(xml_str)

访问解析后的数据:

# 访问根节点的标签名和属性
print(root.tag)  # 输出:bookstore
print(root.attrib)  # 输出:{}

# 访问子节点的标签名和属性
for child in root:
    print(child.tag, child.attrib)  # 输出:book {'category': 'cooking'} | book {'category': 'children'}

# 访问子节点的文本内容
for child in root:
    print(child.find('title').text)  # 输出:Everyday Italian | Harry Potter
    print(child.find('author').text)  # 输出:Giada De Laurentiis | J.K. Rowling
    print(child.find('year').text)  # 输出:2005 | 2005
    print(child.find('price').text)  # 输出:30.00 | 29.99

接下来,我们来看一下XML生成。在Python中,也可以使用ElementTree库来生成XML字符串。

XML生成的过程分为两步:构建Element对象和生成XML字符串。

构建Element对象:

import xml.etree.ElementTree as ET

# 创建根节点
root = ET.Element('bookstore')

# 创建子节点和属性
book1 = ET.SubElement(root, 'book')
book1.set('category', 'cooking')

title1 = ET.SubElement(book1, 'title')
title1.text = 'Everyday Italian'

author1 = ET.SubElement(book1, 'author')
author1.text = 'Giada De Laurentiis'

year1 = ET.SubElement(book1, 'year')
year1.text = '2005'

price1 = ET.SubElement(book1, 'price')
price1.text = '30.00'

book2 = ET.SubElement(root, 'book')
book2.set('category', 'children')

title2 = ET.SubElement(book2, 'title')
title2.text = 'Harry Potter'

author2 = ET.SubElement(book2, 'author')
author2.text = 'J.K. Rowling'

year2 = ET.SubElement(book2, 'year')
year2.text = '2005'

price2 = ET.SubElement(book2, 'price')
price2.text = '29.99'

生成XML字符串:

# 将Element对象转换为字符串
xml_str = ET.tostring(root)
print(xml_str)

以上是基于XML的数据格式转换技术在Python中的使用例子。通过XML解析和XML生成,我们可以方便地处理XML格式的数据。