gpt4 book ai didi

python - lxml: XMLSyntaxError: 不支持的版本 '2.0'

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

lxml 使用 XML 2.0 版时出现异常而失败。

测试:

class TestLXML(unittest.TestCase):

def test_lxml(self):
from lxml import etree

etree.fromstring('<?xml version="2.0" encoding="UTF-8" standalone="no"?><test>test</test>')

结果:

Error
Traceback (most recent call last):
File "/home/viator/coding/esb/mdmesb/packages/smev/core/request/test.py", line 33, in test_lxml
etree.fromstring('<?xml version="2.0" encoding="UTF-8" standalone="no"?><test>test</test>')
File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68121)
File "parser.pxi", line 1786, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102470)
File "parser.pxi", line 1674, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:101299)
File "parser.pxi", line 1074, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:96481)
File "parser.pxi", line 582, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:91290)
File "parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:92476)
File "parser.pxi", line 622, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:91772)
XMLSyntaxError: Unsupported version '2.0', line 1, column 19

lxml不支持2.0版本吗?我能做什么?

最佳答案

好吧,看起来没有正式的 XML 2.0 规范 - 只有 W3C 工作组信息规范,它明确表示“XML 安全工作组已同意不进一步推进此 Canonical XML 2.0 规范作为建议” . (https://www.w3.org/TR/xml-c14n2/)。 Wikpedia 和 Stackoverflow 上关于“XML 2.0”的进一步文章证实了这一点。

因此,由于不存在正式规范,所以没有办法像 lxml 那样具有生产质量、正式、严格检查的库可以读取它。

如果您的文档与 XML 1.1 兼容,只需将文档中的初始“2.0”替换为“1.1”——在解析之前将 XML 视为字符串。如果不是,您将不得不选择另一个适用于信息丰富的 W3C 规范的库(或制作您自己的库)。

一些谷歌搜索发现在 Python 中没有任何库支持像“XML 2.0”这样的东西。另一种选择是记录您需要 XML 2.0 的哪些功能(如果有),并创建一个 XML 预处理器来处理这些功能。

关于python - lxml: XMLSyntaxError: 不支持的版本 '2.0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35087267/

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