【问题标题】:BeautifulSoup as XML parser produces an unwanted html/bodyBeautifulSoup 作为 XML 解析器生成不需要的 html/body
【发布时间】:2020-09-01 06:19:05
【问题描述】:

使用 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)

输出有一个不必要的&lt;html&gt; 和&lt;body&gt;:

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

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

这不是一个有效的解决方案:

print(soup.find('mydocument'))

因为它删除了我想保留的&lt;?xml version="1.0" encoding="utf-8"?&gt;。

【问题讨论】:

    标签: python xml beautifulsoup xml-parsing


    【解决方案1】:

    尝试以下方法之一:

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多