接下来我会详细讲解“Python实现提取XML内容并保存到Excel中的方法”的完整实例教程,并提供两个示例说明。
确定依赖
在实现上述功能前,我们需要安装两个依赖:xlwt
用于写入Excel,xml.etree.ElementTree
用于解析XML。 你可以使用以下命令进行依赖安装:
pip3 install xlwt
解析XML
在这一步中,首先需要加载/打开XML文件, 然后通过 xml.etree.ElementTree
将其解析并转换为树结构,以便于我们进行操作。
import xml.etree.ElementTree as ET
# 加载xml文件
tree = ET.parse('file.xml')
# 获取根节点
root = tree.getroot()
提取XML内容
在这一步中,我们需要遍历XML文件的每一个子节点并提取相关信息。 在下面这个实例中,我们遍历root节点中所有的books,然后提取每本书的标题、作者和价格,并将其保存到一个python列表中。
books = []
# 遍历所有book节点,并提取相关信息
for book in root.findall('.//book'):
book_info = []
title = book.find('title').text
author = book.find('author').text
price = book.find('price').text
book_info.extend([title, author, price])
books.append(book_info)
print(books)
在上面这个示例中,我们使用了 findall()
以获取所有的book,而使用 find()
来获取每本书的详细信息。
写入Excel
在这一步中,我们需要将上面提取出来的XML内容写入至Excel文件中。 我们使用已经安装的 xlwt
库来创建一个新的Excel工作簿,并将books列表中的数据写入至Excel中。
import xlwt
# 创建一个新的工作簿
workbook = xlwt.Workbook()
# 添加一个sheet
sheet = workbook.add_sheet('Books')
# 写入标题行
sheet.write(0, 0, 'Title')
sheet.write(0, 1, 'Author')
sheet.write(0, 2, 'Price')
# 写入数据
for index, book in enumerate(books):
sheet.write(index+1, 0, book[0])
sheet.write(index+1, 1, book[1])
sheet.write(index+1, 2, book[2])
# 保存文件
workbook.save('books.xls')
在上面这个示例中,我们首先创建了一个名为“Books”的Sheet,并将每本书的标题、作者和价格按照行排列,并写入至Excel中。 我们最后将其保存至文件以完成这个过程。
示例1
假设我们有一个XML文件名为“example.xml”,它的内容如下:
<library>
<book id="001">
<title>The Hobbit</title>
<author>J.R.R. Tolkien</author>
<price>10</price>
</book>
<book id="002">
<title>The Lord of the Rings</title>
<author>J.R.R. Tolkien</author>
<price>20</price>
</book>
</library>
我们需要提取上面这个XML文件中的每一本书的标题、作者和价格,并将其写入至一个名为“book.xls”的Excel文件中。你只需要按照如下代码进行操作:
import xml.etree.ElementTree as ET
import xlwt
tree = ET.parse('example.xml')
root = tree.getroot()
books = []
for book in root.findall('.//book'):
book_info = []
title = book.find('title').text
author = book.find('author').text
price = book.find('price').text
book_info.extend([title, author, price])
books.append(book_info)
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Books')
sheet.write(0, 0, 'Title')
sheet.write(0, 1, 'Author')
sheet.write(0, 2, 'Price')
for index, book in enumerate(books):
sheet.write(index+1, 0, book[0])
sheet.write(index+1, 1, book[1])
sheet.write(index+1, 2, book[2])
workbook.save('book.xls')
在这个示例中,我们首先将example.xml载入到程序中,然后按照之前的示例提取XML内容,并将其保存到book.xls文件中。
示例2
现在假设我们有一个名为“books.xml”的XML文件,它的内容如下:
<books>
<book>
<title>Introduction to Programming</title>
<author>John Smith</author>
<price>33.99</price>
</book>
<book>
<title>Web Development with Python</title>
<author>Jane Doe</author>
<price>55.00</price>
</book>
<book>
<title>Machine Learning with Python</title>
<author>Bob Johnson</author>
<price>85.50</price>
</book>
</books>
我们需要提取books.xml中的每一本书的标题、作者和价格,并将其写入至一个名为“books.xls”的Excel文件中。你只需要按照如下代码进行操作:
import xml.etree.ElementTree as ET
import xlwt
tree = ET.parse('books.xml')
root = tree.getroot()
books = []
for book in root.findall('.//book'):
book_info = []
title = book.find('title').text
author = book.find('author').text
price = book.find('price').text
book_info.extend([title, author, price])
books.append(book_info)
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Books')
sheet.write(0, 0, 'Title')
sheet.write(0, 1, 'Author')
sheet.write(0, 2, 'Price')
for index, book in enumerate(books):
sheet.write(index+1, 0, book[0])
sheet.write(index+1, 1, book[1])
sheet.write(index+1, 2, book[2])
workbook.save('books.xls')
在这个示例中,我们首先将books.xml载入到程序中,然后按照之前的示例提取XML内容,并将其保存到books.xls文件中。
希望这个实例教程可以帮助你理解在Python中如何实现解析XML并保存至Excel。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现提取XML内容并保存到Excel中的方法 - Python技术站