ElementTree.iterparse能提取xml中的多行文本?

我遇到的xml文本是这样的:

<item>
<review_id>0079029</review_id>
<summary>的确是很浅显 适合什么都不懂 或者几乎什么都不懂的超级菜鸟</summary>
<text>非常不幸我就是这种对于数据分析 对于excel 几乎什么都不懂的超级菜鸟
非常幸运我买了这本书
作为打基础的书 还是非常不错的
蛮不错的入门 而且深深的勾起了我对数据分析的兴趣
天晓得我大学的时候统计学几乎挂科的
反正打算先看完这本书 差不多学完了这些就应该能满足我目前的工作需要了
以后再看情况要不要深入学习吧</text>
<category>book</category>
</item>

如果我通过xml.etree.ElementTree.iterparse来提取:

for event, elem in iterparse(item_xml_file):
        if elem.tag == 'item':
            ...

就会出现这样的错误:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File ".../process.py", line 25, in process_cn
    for event, elem in iterparse(item_xml_file):
  File "<string>", line 91, in next
ParseError: not well-formed (invalid token): line 5, column 3

是不是SAX的方法不能提取节点中的多行文本,如果不行,那应该用什么?如果xml文件很大,又该怎么办呢?

阅读 7k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题