自己做的小项目需要解析接口返回的xml格式的报文,但是在网上找了基本上都是解析xml文件,sax的parseString方法需要handler,比较麻烦,所以想自己做个工具。后来发现使用BeautifulSoup有奇效。
关键就是把xml的报文头换成HTML文件的报文头,然后就和普通的HTML文件解析一样了。代码如下:
from bs4 import BeautifulSoup
checkResult1 = xmlParam.replace('<?xml version="1.0" encoding="UTF-8"?>', '<html>').replace('\n', '')
checkResult2 = checkResult1 + '</html>'
soup = BeautifulSoup(checkResult2, 'lxml')
更新:------------------------
最近学到了更方便的使用ElementTree解析string字符串
解析string类型的xml文件请用下面的方法
import xml.etree.ElementTree as ET
data=“”
tree=ET.fromstring(data)
for i in tree:
print(i.tag,':',i.text)
tag就是xml的标签,text是其中的内容