python 解析XML

<root> <nodes> <node name="n1"> node1 </node> <node name="n2"> node2 </node> </nodes> <edge> nothing </edge> </root>

xml 格式如上.

首先要得到root节点:

from xml.etree.ElementTree import ElementTree tree = ElementTree() tree.parse(filename) # 你想使用哪个文件作为输入? root = tree.getroot() """如果你的输入的是一段content""" from xml.etree.ElementTree import XML file = open(filename) content = file.read(-1) root = XML(content) print(root.tag) file.close() # or you can use from xml.etree.ElementTree import XMLID file = open(filename) root = XMLID(file.read(-1)) print(root[0].tag) # root[0] is <root></root> file.close()

上面的root是class Element的object, 而tree 是ElementTree的object. 如果想得到某个节点的attribute, 例如<node name="name1"> 则element.attrib['name']即可.如果是<edge>text</edge>,就是element.text.

如果想得到下一层节点,可以使用root.find(tag)得到,如果不知道具体的tag,那么可以使用root.getchildren().如果想使用某个tag作为迭代,例如nodes中有两个node.代码如下:

element_nodes = root.find('nodes') nodes_list = element_nodes.getiterator('node') for node in nodes_list: print(node.tag)

 

你可能感兴趣的:(xml,python,object,list,tree,import)