一、读取
1、xml.dom.minidom
import xml.dom.minidom
doc=xml.dom.minidom.parse(file)
#xml.dom.minidom.parseString(string)
root=doc.documentElement
for node in root.childNodes:
#print node,node.nodeName,node.nodeValue,node.nodeType #,node.data (for textnode)
if node.nodeName=='channel': #and node.nodeType=node.ELEMENT_NODE
cata=u'其他'.encode('gbk')
name=node.getAttribute('name').encode('gbk') #node.attributes['name']
#for cnode in node.childNodes:
a)node.getElementsByTagName('id')#根据名字搜索,包括子结点
2、xml.Etree.ElementTree
from xml.etree import ElementTree
# 加载XML文件(2种方法,一是加载指定字符串,二是加载指定文件)
# root = ElementTree.parse(r"D:/test.xml")
root = ElementTree.fromstring(text)
# 获取element的方法
# 1 通过getiterator
lst_node = root.getiterator("person")
for node in lst_node:
print_node(node)
# 2通过 getchildren
lst_node_child = lst_node[0].getchildren()[0]
print_node(lst_node_child)
# 3 .find方法
node_find = root.find('person')
print_node(node_find)
#4. findall方法
node_findall = root.findall("person/name")[1]
print_node(node_findall)