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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值