我有一个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("&", "&")
一种使用方法:
with open(fileName, 'r+') as f:
read_data = f.read()
doc = ET.fromstring(read_data.replace("&", "&"))
print(doc.find('./uid').text)
给定您的样本,输出应该是
JAMES&001