zyqsnail 2015-07-12 12:10 采纳率: 0%
浏览 1720

用elementtree解析xml文件总是报错 AttributeError:

#-*- coding:utf-8 -*-
from xml.etree import ElementTree
def print_node(node):
'''打印结点基本信息'''
print "=============================================="
print "node.attrib:%s" % node.attrib
if node.attrib.has_key("name") > 0 :
print "node.attrib['name']:%s" % node.attrib['name']
print "node.tag:%s" % node.tag
print "node.text:%s" % node.text
def read_xml(text):
'''读xml文件'''
# 加载XML文件(2种方法,一是加载指定字符串,二是加载指定文件)

# root = ElementTree.parse(r"D:/test.xml")
root = ElementTree.fromstring(text)

# 获取element的方法
# 1 通过getiterator 
lst_node = root.getiterator("files")
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('file')
print_node(node_find)

#4. findall方法
node_findall = root.findall("files/file")[1]
print_node(node_findall)

if name == '__main__':
read_xml(open("modifiles.xml").read())

  • 写回答

2条回答 默认 最新

  • oyljerry 2015-07-12 13:08
    关注

    属性错误,是可能你没有获取到对应的xml节点。或者xml格式跟你代码解析不对应。
    几种方法都没有判断你是否获取节点成功了。

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况