我有一个具有以下结构的 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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句