Python toprettyxml()格式化问题

时间:2011-06-06 18:23:11

标签: python xml

我正在尝试使用Python的minidom处理XML,然后使用toprettyxml()输出结果。我遇到了两个问题:

  1. 添加了空行。
  2. 为文本节点添加了换行符和标签。
  3. 这是代码和输出:

    $ cat test.py
    from xml.dom import minidom
    
    dom = minidom.parse("test.xml")
    print dom.toprettyxml()
    
    $ cat test.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <store>
        <product>
            <fruit>orange</fruit>
        </product>
    </store>
    
    
    $ python test.py
    <?xml version="1.0" ?>
    <store>
    
    
        <product>
    
    
            <fruit>
                orange
            </fruit>
    
    
        </product>
    
    
    </store>
    

    我可以使用strip()解决问题1以删除空行,我可以使用此链接中描述的hack(fixed_writexml)解决问题2:http://ronrothman.com/public/leftbraned/xml-dom-minidom-toprettyxml-and-silly-whitespace/,但我想知道是否有更好的解决方案黑客现在差不多3岁了。我愿意使用minidom以外的东西,但我想避免添加像lxml这样的外部软件包。

1 个答案:

答案 0 :(得分:2)

一种解决方案是使用proposed patch将minidom Library修补为您提到的错误。

我没有测试过自己,也有点hacky,所以它可能不适合你!