我正在编写代码来解析用 XML 编写的配置文件,其中 XML 标记是大小写混合的,并且大小写很重要。Beautiful Soup 似乎默认将 XML 标记转换为小写,我想更改此行为。
我不是第一个就这个主题提出问题的人[见这里]。但是,我不明白该问题的答案,并且在 BeautifulSoup-3.1.0.1 BeautifulSoup.py 似乎不包含任何“ encodedName
”或“ Tag.__str__
”实例
我正在编写代码来解析用 XML 编写的配置文件,其中 XML 标记是大小写混合的,并且大小写很重要。Beautiful Soup 似乎默认将 XML 标记转换为小写,我想更改此行为。
我不是第一个就这个主题提出问题的人[见这里]。但是,我不明白该问题的答案,并且在 BeautifulSoup-3.1.0.1 BeautifulSoup.py 似乎不包含任何“ encodedName
”或“ Tag.__str__
”实例
import html5lib
from html5lib import treebuilders
f = open("mydocument.html")
parser = html5lib.XMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup"))
document = parser.parse(f)
'document' 现在是一个类似于 BeautifulSoup 的树,但保留了标签的大小写。有关文档和安装,请参见html5lib。
根据 Beautiful Soup 的创建者|维护者 Leonard Richardson 的说法,你不能。
使用lxml会好得多。它比 BeautifulSoup 快得多。如果您不想学习 lxml API,它也有适用于 BeautifulSoup 的兼容性 API。
没有理由再使用 BeautifulSoup,除非您使用的是 Google App Engine 或其他任何不纯 Python 的东西。
它也更适合 XML。
只需使用propper xml解析器而不是用于处理损坏文件的lib
我建议只看一下 xml.etree 或 lxml