我使用BeautifulSoup对XML文件进行更改,但我注意到如果我读入文件,将其放入构造函数中,只需将其吐出而不对其进行任何更改,BeautifulSoup已经对代码进行了一些更改。例如,标记和属性名称都是小写的,并且标记中的属性顺序会发生变化。
我务实地知道这不应该是一个问题,但是必须阅读XML文件的程序非常挑剔并且不会接受这些更改。我发现我可以使用没有BeautifulSoup的普通字符串操作进行更改,但这很不方便。
有没有办法阻止BeautifulSoup在阅读时对XML进行更改?
答案 0 :(得分:1)
BeautifulSoup的工作原理是将XML解析为它理解的对象。当它写出XML时,它会写出对象中的数据,而不是已解析的原始字符串。
一种解决方案是使用BeautifulSoup解析XML,然后使用生成的api自定义XML以满足程序的要求。您可以制作custom pretty printer或iterate through the elements,手动缩进并根据需要格式化数据。