python xml解析
来源:互联网 发布:审批软件 编辑:程序博客网 时间:2024/06/06 00:32
first.xml<info><person ><id>1</id><name>fsy</name><age >24</age></person><person><id>2</id><name>jianjian</name><age>24</age></person><count id ='1'>1000</count></info>
from xml.etree import ElementTree as etree
读入
def read_xml(file):# parse()函数会返回一个能代表整篇文档的对象。这不是根元素。要获得根元素的引用可以调用getroot()方法。tree = etree.parse(file)root = tree.getroot()return root
得到信息
def print_node(node):'''打印结点基本信息'''print("node.tag:%s" % node.tag)print("node.attrib:%s"%node.attrib)print( "node.text:%s" % node.text)
搜索:
find_all>>> root = read_xml ('first.xml') >>> res = root.findall("person")[<Element 'person' at 0x00000000033388B8>, <Element 'person' at 0x0000000003413D68>]注意:findall只查询直接的子节点>>> r1 = root.findall("id")>>> r1[]>>> r =tree.findall(".//id")>>> for e in r: print( e,e.text)<Element 'id' at 0x00000000034279F8> 1<Element 'id' at 0x0000000003427B38> 2
find:
#find()方法用来返回第一个匹配到的元素。当我们认为只会有一个匹配,或者有多个匹配但我们只关心第一个的时候,这个方法是很有用的。>>> res[0].find("id")<Element 'id' at 0x0000000003413CC8>>>> print_node(res[0].find("id"))node.tag:idnode.attrib:{}node.text:1
find查找失败:
使用find要注意在布尔上下文中,如果ElementTree元素对象不包含子元素,其值则会被认为是False(即如果len(element)等于0)。这就意味着if element.find('...')并非在测试是否find()方法找到了匹配项;这条语句是在测试匹配到的元素是否包含子元素。想要测试find()方法是否返回了一个元素,则需使用if element.find('...') is not None。
>>> bk = res[0].find("no")>>> bk>>> type(bk)<class 'NoneType'>>>> res[0].find("id")<Element 'id' at 0x0000000003413CC8>>>> if res[0].find("id"): print("find") else: print("not find")not find>>> if res[0].find("id") is not None: print("find") else: print("not find")find
本篇博客出自阿修罗道,转载请注明出处:http://blog.csdn.net/fansongy/article/details/9119661
- python 解析XML xml.dom
- python 解析XML xml.dom
- python 解析XML xml.dom
- python解析xml(创建xml)
- python 解析XML xml.dom
- python 解析XML xml.dom
- Python解析XML文件
- python 解析XML
- Python 解析XML
- python解析xml模块
- python 解析xml
- python 解析xml文件
- Python解析XML字符串
- python解析XML文档
- python解析xml
- python xml解析
- python解析xml文件
- Python解析XML字符串
- json数组对象和对象数组、json对象长度
- 【Django】settings(django中settings设置)
- 模仿的智能指针的一个简单实现
- Caused by: java.lang.NoClassDefFoundError: android.support.v7.gridlayout.R$dimen 异常解决方法
- 如何制作一款HTML5 RPG游戏引擎——第五篇,人物&人物特效
- python xml解析
- 数据仓库数据质量管理【转】
- Filter和Interceptor
- 学习笔记 for 《简明 Vim 练级攻略》
- 基于Predictive Parsing的ABNF语法分析器(十二)——alternation、concatenation、group和option
- 数据结构课程设计-发牌程序1
- 为netbeans设置语言和国家(6.x version)
- C#利用Chart类别建立不含格线的直条图
- 安装安卓SDK错误集