使用BeautifulSoup处理XML文档
发布时间:2020-12-16 09:21:57 所属栏目:百科 来源:网络整理
导读:最近需要用python处理一个简单的XML,因其格式较乱,恰巧为了测试BeautifulSoup,所以百度学习了下,发现大多数都是解析HTML的文章,所以翻文档大概笔记下,功能是实现了,但问题很多后期再说吧。 测试XML代码: ?xmlversion="1.0"encoding="utf-8"?web-appc
最近需要用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>] ******************** 北京西街 人类 ******************** 北京西街 人类 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |