在Python中,xml
模块是一个常用的内置模块,可以用于解析和生成XML文档。以下是详细的攻略,介绍xml
模块的原理和用法:
解析XML文档
可以使用xml
模块解析XML文档。以下是一个示例,演示如何使用xml
模块解析XML文档:
import xml.etree.ElementTree as ET
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>
'''
root = ET.fromstring(xml_str)
for book in root.findall('book'):
title = book.find('title').text
author = book.find('author').text
year = book.find('year').text
price = book.find('price').text
print(title, author, year, price)
在上面的示例中,首先定义了一个XML文档字符串xml_str
,然后使用ET.fromstring()
方法将XML文档字符串解析为一个Element
对象。接着,使用root.findall()
方法查找所有book
元素,并使用book.find()
方法查找title
、author
、year
和price
元素。最后,使用print()
方法输出结果。
生成XML文档
可以使用xml
模块生成XML文档。以下是一个示例,演示如何使用xml
模块生成XML文档:
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.set('lang', 'en')
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.set('lang', 'en')
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_str = ET.tostring(root, encoding='utf-8')
print(xml_str.decode())
在上面的示例中,首先使用ET.Element()
方法创建一个bookstore
元素,并使用ET.SubElement()
方法创建book
、title
、author
、year
和price
元素。然后,使用set()
方法设置book
元素的category
属性,使用text
属性设置其他元素的文本内容。最后,使用ET.tostring()
方法将Element
对象转换为XML文档字符串,并使用print()
方法输出结果。
希望这些示例能够帮您了解Python中xml
模块的原理和用法。在实际应用中,应根据需要使用ET.fromstring()
、ET.Element()
、ET.SubElement()
、set()
、text
等方法,并注意它们的参数设置和返回值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python常用内置模块之xml模块(详解) - Python技术站