使用BeautifulSoup处理XML文档

前端之家收集整理的这篇文章主要介绍了使用BeautifulSoup处理XML文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近需要用python处理一个简单的XML,因其格式较乱,恰巧为了测试BeautifulSoup,所以百度学习了下,发现大多数都是解析HTML的文章,所以翻文档大概笔记下,功能是实现了,但问题很多后期再说吧。

测试XML代码

<?xmlversion="1.0"encoding="utf-8"?>
<web-app>
<context-param>
<param-name>地址</param-name>
<param-value>北京西街</param-value>
</context-param>
<listener>
<listener-class>
寡妇墙.....
</listener-class>
</listener>
<servlet>
<servlet-name>姓名</servlet-name>
<servlet-class>小强</servlet-class>
<init-param>
<param-name>动物</param-name>
<param-value>人类</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
</web-app>

测试python代码

#coding=utf-8
'''
简单测试BeautifulSoup解析XML
'''
frombs4importBeautifulSoup
importre

#使用BeautifulSoup以XML格式打开test.xml文件
soup=BeautifulSoup(open('test.xml'),'xml')
#格式化XML输出
printsoup.prettify()
#查找所有叫param-value的tag子节点

print"\n"+"*"*20+"\n"
printsoup.find_all('param-value')

print"\n"+"*"*20+"\n"
#打印出所有符合条件的子节点属性值
fortaginsoup.find_all('param-value'):
	printtag.text.strip()

print"\n"+"*"*20+"\n"
#使用正则的方式查找符合条件的子节点
fortag1insoup.find_all(re.compile('param-value')):
	printtag1.text.strip()

输出结果

<?xmlversion="1.0"encoding="utf-8"?>
<web-app>
<context-param>
<param-name>
地址
</param-name>
<param-value>
北京西街
</param-value>
</context-param>
<listener>
<listener-class>
寡妇墙.....
</listener-class>
</listener>
<servlet>
<servlet-name>
姓名
</servlet-name>
<servlet-class>
小强
</servlet-class>
<init-param>
<param-name>
动物
</param-name>
<param-value>
人类
</param-value>
</init-param>
<load-on-startup>
1
</load-on-startup>
</servlet>
</web-app>

********************

[<param-value>北京西街</param-value>,<param-value>人类</param-value>]

********************

北京西街
人类

********************

北京西街
人类

猜你在找的XML相关文章