解析xml的库有:
xml(python自带)、libxml2 、lxml 、xpath...
一:xml
import xml.etree.ElementTree
from StringIO import StringIO
file = StringIO(data)
doc = xml.etree.ElementTree.parse(file)
infos = doc.find('infos')
xx = infos.find('info')
xx
<Element 'info' at 0x7ff08ed51e50>
xx.items()
[('vu', '80cm'), ('sex', 'man')]
二:lxml
导入:
from lxml import etree
data='<man endtime="14865"><name value="lili" add="out"/><infos><info sex="man" vu="80cm"><home state="no" people="3"/></info></infos></man>'
>>> root = etree.XML(data)
>>> name = root.find('name')
>>> type(name)
<type 'lxml.etree._Element'>
>>> name.items()
[('value', 'lili'), ('add', 'out')]
>>> infos = root.find('infos')
>>> type(infos)
<type 'lxml.etree._Element'> 一个套一个,使用find进行查找,这里注意info和infos的类型,
>>> info = infos.find('info')
>>> type(info)
<type 'lxml.etree._Element'>
>>> info.items()
[('sex', 'man'), ('vu', '80cm')]
两个模块的设计思想都差不多。