为什么BeautifulSoup会修改我的自闭元素?

时间:2009-10-14 16:19:14

标签: python xml beautifulsoup

这是我的脚本:

import BeautifulSoup

if __name__ == "__main__":
    data = """
    <root>
        <obj id="3"/>
        <obj id="5"/>
        <obj id="3"/>
    </root>
    """
    soup = BeautifulSoup.BeautifulStoneSoup(data)
    print soup

运行时,会打印:

<root>
  <obj id="3"></obj>
  <obj id="5"></obj>
  <obj id="3"></obj>
</root>

我希望它保持相同的结构。我怎么能这样做?

1 个答案:

答案 0 :(得分:7)

来自Beautiful Soup documentation

  

BeautifulStoneSoup最常见的缺点是它不了解自动关闭标签。 HTML有一组固定的自关闭标签,但是使用XML它取决于DTD所说的内容。你可以告诉BeautifulStoneSoup某些标签是自动关闭的,方法是将它们的名称作为selfClosingTags参数传递给构造函数