Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > Python网络爬虫

python xml解析实例详解

来源:中文源码网    浏览:135 次    日期:2024-05-02 12:16:57
【下载文档:  python xml解析实例详解.txt 】


python xml解析实例详解
python xml解析
first.xml


1
fsy
24


2
jianjian
24

1000

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")
[, ]
注意:findall只查询直接的子节点
>>> r1 = root.findall("id")
>>> r1
[]
>>> r =tree.findall(".//id")
>>> for e in r:
print( e,e.text)
1
2
find:
#find()方法用来返回第一个匹配到的元素。当我们认为只会有一个匹配,或者有多个匹配但我们只关心第一个的时候,这个方法是很有用的。
>>> res[0].find("id")

>>> print_node(res[0].find("id"))
node.tag:id
node.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)

>>> res[0].find("id")

>>> 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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关内容