'lxml:XML语法错误:不支持的版本 '2.0''

2024-09-30 14:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

{1>使用XML时,{1>出现异常,^.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>')

结果:

^{pr2}$

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


Tags: fromtestimportselfversiondefxmlunittest
1条回答
网友
1楼 · 发布于 2024-09-30 14:26:56

好吧,看起来xml2.0没有正式的规范,只有W3C工作组的信息性规范,它明确表示“XML安全性工作组已经同意不再将这个规范的xml2.0规范作为建议进一步改进”。(https://www.w3.org/TR/xml-c14n2/)。Wikpedia和Stackoverflow上关于“xml2.0”的进一步报道证实了这一点。在

所以,由于不存在一个正式的规范,不可能有一个生产质量、正式、严格的检查库像lxml一样可以读取它。在

如果您的文档与XML1.1兼容,jsut将文档中的初始“2.0”替换为“1.1”——在解析XML之前将XML视为字符串。如果没有,您将不得不选择另一个与信息丰富的W3C规范一起工作的库(或者自己制作)。在

一些google发现Python中没有任何库支持“xml2.0”这样的东西。另一种选择是记录xml2.0中需要的特性(如果有的话),并创建一个XML预处理器来处理这些特性。在

相关问题 更多 >