我有一个具有以下结构的 XML 文件:
<Thread THREAD_SEQUENCE="Q268_R16">
<RelQuestion RELQ_ID="Q268_R16">
<RelQSubject>Best Bank.</RelQSubject>
<RelQBody>Hi ti all QL's; What bank you are using? and why? Are you using this bank just because it has an affiliate at home? Regards;</RelQBody>
</RelQuestion>
</Thread>
在XML文件中,有244个RelQBody标签。 我想要做的是获取 RelQBody 标记内的文本。我尝试过这样的事情:
import xml.dom.minidom
dom = xml.dom.minidom.parse("test.xml")
data = dom.documentElement
question = data.getElementsByTagName("RelQBody")
i=1
for q in question:
print("%i. %s" % (i, q.childNodes[0].data))
i = i+1
但我一直收到错误消息
Traceback (most recent call last):
File "C:\Users\Administrator\Documents\python\test.py", line 13, in <module>
print("%i. %s" % (i, q.childNodes[0].data))
IndexError: list index out of range
但是,当我尝试这段代码时:
import xml.dom.minidom
dom = xml.dom.minidom.parse("test.xml")
data = dom.documentElement
question = data.getElementsByTagName("RelQBody")
i=1
for q in question:
print("%i" % i)
i = i+1
我得到了号码 1-244。它与数据集中的完全相同。
那么为什么我打印带字符串和不带字符串时会有差异呢?也许有人可以告诉我我做错了哪一部分? 我是 Python 新手,所以任何帮助将不胜感激。谢谢。
最佳答案
import xml.dom.minidom
dom = xml.dom.minidom.parse("test.xml")
data = dom.documentElement
question = data.getElementsByTagName("RelQBody")
for i,q in enumerate(question):
if len(q.childNodes) > 0:
print("%i. %s" % (i+1, q.childNodes[0].data))
关于Python 读取 XML 文件时不断出现错误 "list index out of range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45049170/