zoukankan      html  css  js  c++  java
  • 使用python的minidom模块格式化、对齐、换行、整理xml文件

    #!/usr/bin/python3
     
    # coding=utf-8
    from xml.dom import minidom    
    import xml
     
    def fixed_writexml(self, writer, indent="", addindent="", newl=""): 
        # indent = current indentation 
        # addindent = indentation to add to higher levels 
        # newl = newline string 
        writer.write(indent+"<" + self.tagName) 
     
        attrs = self._get_attributes() 
        a_names = attrs.keys() 
        a_names.sort() 
     
        for a_name in a_names: 
            writer.write(" %s="" % a_name) 
            minidom._write_data(writer, attrs[a_name].value) 
            writer.write(""") 
        if self.childNodes: 
            if len(self.childNodes) == 1 and self.childNodes[0].nodeType == minidom.Node.TEXT_NODE: 
                writer.write(">") 
                self.childNodes[0].writexml(writer, "", "", "") 
                writer.write("</%s>%s" % (self.tagName, newl)) 
                return 
            writer.write(">%s"%(newl)) 
            for node in self.childNodes: 
                if node.nodeType is not minidom.Node.TEXT_NODE: 
                    node.writexml(writer,indent+addindent,addindent,newl) 
            writer.write("%s</%s>%s" % (indent,self.tagName,newl)) 
        else: 
            writer.write("/>%s"%(newl)) 
     
    minidom.Element.writexml = fixed_writexml
  • 相关阅读:
    leetcode——202.快乐数
    leetcode——136. 只出现一次的数字
    leetcode——74.搜索二维矩阵
    leetcode——240.搜索二维矩阵
    leetcode——414.第三大的数
    020 迭代器模式
    019 模板模式
    018 中介者模式
    017 命令模式
    016 责任链模式
  • 原文地址:https://www.cnblogs.com/Gnnnny/p/8072518.html
Copyright © 2011-2022 走看看