使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM