【发布时间】:2021-04-29 23:32:44
【问题描述】:
我必须解析这样开头的 XML 文件:
xml_string = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<annotationStandOffs xmlns="http://www.tei-c.org/ns/1.0">
<standOff>
...
</standOff>
</annotationStandOffs>
'''
只有当我消除上面显示的字符串的第一行时,以下代码才会生效:
import xml.etree.ElementTree as ET
from lxml import etree
parser = etree.XMLParser(resolve_entities=False,strip_cdata=False,recover=True)
XML_tree = etree.XML(xml_string,parser=parser)
否则会报错:
ValueError:不支持带有编码声明的 Unicode 字符串。请使用不带声明的字节输入或 XML 片段。
【问题讨论】:
-
试试
XML_tree = etree.XML(xml_string.encode('utf-8'),parser=parser)