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文件很大,又该怎么办呢?

xml python

miumiu子 10 years, 10 months ago

换了台机子,又可以了。这叫什么事啊?

raines answered 10 years, 10 months ago

Your Answer