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格式的数据。
