写一个将xml转换xls的python脚本,例如<?xml version="1.0"?> <!-- masscan v1.0 scan --> <nmaprun scanner="masscan" start="1685697020" version="1.0-BETA" xmloutputversion="1.03"> <host endtime="1685697020"><address addr="219.138.104.6" addrtype="ipv4"/><ports><port protocol="tcp" portid="8888"><state state="open" reason="syn-ack" reason_ttl="50"/></port></ports></host> </nmaprun>
时间: 2023-07-03 10:32:45 浏览: 146
关于用oracle的dbms_xmldom导出xml文档编码格式UTF-8的问题总结
4星 · 用户满意度95%
好的,这是一个将xml转换为xls格式的Python脚本,使用第三方库xlwt和xml.etree.ElementTree:
```python
import xml.etree.ElementTree as ET
import xlwt
def xml_to_xls(xml_file, xls_file):
# 解析XML文件
tree = ET.parse(xml_file)
root = tree.getroot()
# 创建一个新的xls文件和一个sheet
book = xlwt.Workbook()
sheet = book.add_sheet('Sheet 1')
# 写入表头
headers = ['IP地址', '协议', '端口号', '状态']
for i, header in enumerate(headers):
sheet.write(0, i, header)
# 逐行读取XML文件,并将数据写入xls文件
row = 1
for host in root.iter('host'):
ip = host.find('address').get('addr')
for port in host.iter('port'):
protocol = port.get('protocol')
portid = port.get('portid')
state = port.find('state').get('state')
sheet.write(row, 0, ip)
sheet.write(row, 1, protocol)
sheet.write(row, 2, portid)
sheet.write(row, 3, state)
row += 1
# 保存xls文件
book.save(xls_file)
# 测试
xml_to_xls('example.xml', 'example.xls')
```
在这个脚本中,我们首先使用xml.etree.ElementTree库解析XML文件,然后使用xlwt库创建一个新的xls文件和一个sheet。接着,我们写入表头,并逐行读取XML文件,将数据写入xls文件。最后,我们保存xls文件。
阅读全文