繁体   English   中英

在python中解析xml时遇到问题

[英]having issue with parsing xml in python

我真的是python新手。 这实际上是我的第一个脚本,其中大部分是复制的示例。 我有一个XML文件,我需要解析出一个属性。 我弄清楚了那部分,但是我的问题是该属性并不总是存在于xml文件中。 这是我的代码:

#!/usr/bin/python
#import library to do http requests:
import urllib2
import os

#import easy to use xml parser called minidom:
from xml.dom.minidom import parseString

#download the history:
history = urllib2.urlopen('http://192.168.1.1/example.xml')
#convert to string:
historydata = history.read()
history.close()

#parse the xml you downloaded
dom = parseString(historydata)
xmlTagHistory = dom.getElementsByTagName('loaded')[0].toxml()
xmlDataHistory=xmlTagHistory.replace('<loaded>','').replace('</loaded>','')

print xmlDataHistory

当属性不存在时,我得到“ IndexError:列表索引超出范围”的返回。 我尝试使用此代码执行的操作是,如果属性不存在或为false,则使其运行命令。 我可能遇到的另一个问题是,有时该属性会出现多次,因此,即使有一个“ loaded”实例为真,我也需要通过不运行命令来解决该问题。 就像我说的那样,我真的很陌生,因此我可以尽我所能获得所有帮助。 非常感激。

由于dom.getElementsByTagName('loaded')返回一个列表,因此您可以使用len(list)函数检查列表大小。 仅当列表长度大于0时,进行[0]解引用才有效。

一种替代方法是将代码包装在try / exception对中并捕获解析异常。

http://docs.python.org/tutorial/errors.html

使用try和,除非您应该能够处理所需的一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM