当使用BeautifulSoup for XML时:
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特定的元素,并使用BeautifulSoup输出XML?
这不是有效的解决方案:
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>