我可以制作美丽的汤保持属性排序和行缩进

时间:2017-03-07 13:29:04

标签: python xml parsing beautifulsoup

我正在使用带有XML解析器的Bueatiful Soup

soup = BeautifulSoup(open("/root/sandbox/garbage/example_jmx.jmx"), "xml")

这样可以保留属于大写\小写的属性,就像在解析的文件中一样。 (仅供参考,使用" lxml"解析器会将所有属性保存为小写。)

但我还有其他两个问题。

  1. 属性的顺序已更改。
  2. 线条的缩进丢失了。所有行都与右侧对齐
  3. 例如#1

    <TestPlan enabled="true" guiclass="TestPlanGui" testclass="TestPlan">
    

    转向

    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" enabled="true">
    

    如何保留原始属性顺序和行缩进?

1 个答案:

答案 0 :(得分:2)

  1. dict对象中的bs4 store标记属性,dict是无序对象。
  2. 缩进在bs4中无关紧要,它使用children parent来显示标记的关系。
  3. 如果要保留所有缩进和属性顺序,则应直接打开文件。