看看这个例子:
# xml parser
bs4.BeautifulSoup('<price>£4</price>', 'xml')
# prints:
<?xml version="1.0" encoding="utf-8"?>
<price>4</price>
# html (lxml) parser
bs4.BeautifulSoup('<span>£4</span>', 'lxml')
# prints:
<html><body><span>£4</span></body></html>
注意£
标志。为什么XML解析器会删除它?我应该怎么做才能在输出中使用它?我需要xml
解析,因为该文档包含一些由lxml
解析器错误解析的配对标记(例如<link>
)。
答案 0 :(得分:0)
£
不是标准的XML实体 - 例如使用£
。 £
是一个HTML实体,无法在DTD中声明(或嵌入)它们的情况下使用它。
修改:例如参见How do I define HTML entity references inside a valid XML document?