您的位置:首页 > 编程语言 > Python开发

python 解析XML

2010-06-28 10:58 363 查看
<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)


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息