gpt4 book ai didi

python - 为什么在一个脚本中两次调用 ElementTree.parse 函数会出现异常?

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:21 25 4
gpt4 key购买 nike

我需要在一个脚本中处理两个 xml 文件。所以,我写了一些代码如下:

import xml.etree.cElementTree as ET

parser = ET.XMLParser(encoding='utf-8')
ET.parse('../wiki.xml', parser=parser)
ET.parse('../tutorial.xml', parser=parser)

但是,第二次调用 parse 时出现异常。

cElementTree.ParseError: parsing finished

但是,我确保两个 xml 文件都没有内部问题,因为当我更改顺序时,第二次调用总是出现异常,如果我保留一个,则没有问题。

那么,为什么在一个脚本中调用两次 ElementTree.parse 函数会出现异常呢?

最佳答案

您应该为每棵树创建新的解析器。因为解析器在内部保存已解析的状态,所以它不能用于解析另一棵树。

import xml.etree.cElementTree as ET

parser1 = ET.XMLParser(encoding='utf-8')
ET.parse('../wiki.xml', parser=parser1)
parser2 = ET.XMLParser(encoding='utf-8')
ET.parse('../tutorial.xml', parser=parser2)

关于python - 为什么在一个脚本中两次调用 ElementTree.parse 函数会出现异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28127377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com