Python XML ElementTree 不读取节点 &



我有一个XML,其中一个节点有'&'字符串内:

<uid>JAMES&001</uid>

现在,当我尝试使用以下代码读取整个xml时:

tree = et.parse(fileName)
root = tree.getroot()
ids = root.findall("uid")

我在上述节点的链接上得到错误:

xml.etree.ElelmentTree.ParseError: not well-formed (invalid token): line17, column 21

该代码在没有"&"的其他实例上运行良好。我想是绳子断了。

它可以通过编码修复吗?怎样我搜索了其他问题,但找不到答案。

TIA-

您需要首先清理xml,因为它的格式不好。

您需要替换有问题的&-类似于.replace("&", "&amp;")

一种使用方法:

with open(fileName, 'r+') as f:
read_data = f.read()
doc = ET.fromstring(read_data.replace("&", "&amp;"))
print(doc.find('./uid').text)

给定您的样本,输出应该是

JAMES&001

最新更新