BeautifulSoup 因为 XML 解析器产生不需要的 html/body

BeautifulSoup as XML parser produces an unwanted html/body

当对 XML 使用 BeautifulSoup 时:

import bs4
soup = bs4.BeautifulSoup('<?xml version="1.0" encoding="utf-8"?><mydocument><b></b></mydocument>', 'lxml')
# add or remove tags in soup
print(soup)

输出有一个不必要的 <html><body>:

<?xml version="1.0" encoding="utf-8"?><html><body><mydocument><b></b></mydocument></body></html>

如何避免这些 HTML 特定元素并输出 XML 和 BeautifulSoup?

这不是有效的解决方案:

print(soup.find('mydocument'))

因为它删除了我想保留的 <?xml version="1.0" encoding="utf-8"?>

尝试以下方法之一:

my_xml = '<?xml version="1.0" encoding="utf-8"?><mydocument><b></b></mydocument>'
soup = bs4.BeautifulSoup(my_xml, "xml")

soup = bs4.BeautifulSoup(my_xml, "lxml-xml")

在任何一种情况下 print(soup) 应该输出:

<?xml version="1.0" encoding="utf-8"?>
<mydocument><b/></mydocument>