在Python中,我正在解析包含控制字符的XML:
import xml.etree.ElementTree as ET
tree = ET.fromstring('<?xml version="1.1" encoding="UTF-8"?><field>foo  bar</field>')
print(tree.text)XML 1.1允许使用控制字符,但解析失败。是不是我遗漏了什么,或者xml.etree.ElementTree不支持这样的控制字符?
发布于 2020-04-15 21:43:03
至少在linux上的ElementTree解析器使用系统的expat解析器。libexpat维护do not plan to support XML1.1。
lxml包提供了类似于ElementTree的API,它使用libxml2来解析XML。libxml2 maintainers also do not plan to implement XML1.1(这个引用很旧,但是libxml2 homepage只引用1.0标准。
你需要找到
Python解析器,为解析器实际实现XML1.1
发布于 2020-04-23 09:06:19
@snakecharmerb是对的。向你推荐一个容忍度更高的库,也许你会喜欢它。
from simplified_scrapy import SimplifiedDoc,req,utils
html = '<?xml version="1.1" encoding="UTF-8"?><field>foo  bar</field>'
doc = SimplifiedDoc(html)
print(doc.field.text)结果:
foo  bar这里有更多的例子。https://github.com/yiyedata/simplified-scrapy-demo/blob/master/doc_examples
https://stackoverflow.com/questions/61228807
复制相似问题