您好,我遇到了我正在使用的xml文件的问题。现在发生什么是在一个简短的XML文件程序工作正常,但由于某种原因,一旦它达到一个尺寸(我想1 MB) 它给了我一个“IndexError:列表索引超出范围”Python,XML索引错误
这是我到目前为止写的代码。
from xml.dom import minidom
import smtplib
from email.mime.text import MIMEText
from datetime import datetime
def xml_data():
f = open('C:\opidea_2.xml', 'r')
data = f.read()
f.close()
dom = minidom.parseString(data)
ic = (dom.getElementsByTagName('logentry'))
dom = None
content = ''
for num in ic:
name = num.getElementsByTagName('author')[0].firstChild.nodeValue
if name:
content += "***Changes by:" + str(name) + "*** " + '\n\n Date: '
else:
content += "***Changes are made Anonymously *** " + '\n\n Date: '
print content
if __name__ == "__main__":
xml_data()
这是xml的一部分,如果它有帮助。
<log>
<logentry
revision="33185">
<author>glv</author>
<date>2012-08-06T21:01:52.494219Z</date>
<paths>
<path
kind="file"
action="M">/branches/Patch_4_2_0_Branch/text.xml</path>
<path
kind="dir"
action="M">/branches/Patch_4_2_0_Branch</path>
</paths>
<msg>PATCH_BRANCH:N/A
BUG_NUMBER:N/A
FEATURE_AFFECTED:N/A
OVERVIEW:N/A
Adding the SVN log size requirement to the branch
</msg>
</logentry>
</log>
实际的xml文件要大得多,但这是一般格式。如果它很小,它实际上会工作,但一旦它变得更大,我会遇到问题。
这里是回溯
Traceback (most recent call last):
File "C:\python\src\SVN_Email_copy.py", line 141, in <module>
xml_data()
File "C:\python\src\SVN_Email_copy.py", line 50, in xml_data
name = num.getElementsByTagName('author')[0].firstChild.nodeValue
IndexError: list index out of range
完整的追溯在哪里?你拿pdb了吗? –
可悲的是我不知道完全追溯是在哪里或者它是什么,也不知道pdb的含义。 –
当您遇到错误时,您不仅仅会得到“索引超出范围”,您将获得为整个执行堆栈打印的行号和调用站点。这被称为“追溯”。包括所有这些。 (你甚至不会说什么行号会产生错误。) –