⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlprettyprinter.py

📁 wxPython的基本示例程序
💻 PY
字号:
#----------------------------------------------------------------------------# Name:         xmlprettyprinter.py# Purpose:## Author:       John Spurling## Created:      9/21/04# CVS-ID:       $Id: xmlprettyprinter.py,v 1.3 2005/12/30 23:01:25 RD Exp $# Copyright:    (c) 2004-2005 ActiveGrid, Inc.# License:      wxWindows License#----------------------------------------------------------------------------from activegrid.util.lang import *ifDefPy()import xml.saxendIfDef()class XMLPrettyPrinter(xml.sax.ContentHandler):    def __init__(self, indentationChar='    ', newlineChar='\n'):        self.xmlOutput = ''        self.indentationLevel = 0        self.indentationChar = indentationChar        self.elementStack = []        self.newlineChar = newlineChar        self.hitCharData = False    ## ContentHandler methods    def startElement(self, name, attrs):        indentation = self.newlineChar + (self.indentationChar * self.indentationLevel)        # build attribute string        attrstring = ''        for attr in attrs.getNames():            value = attrs[attr]            attrstring += ' %s="%s"' % (attr, value)        self.xmlOutput += '%s<%s%s>' % (indentation, name, attrstring)        self.indentationLevel += 1        self.elementStack.append(name)        self.hitCharData = False    def characters(self, content):##        print "--> characters(%s)" % content        self.xmlOutput += content        self.hitCharData = True    def endElement(self, name):        self.indentationLevel -= 1        indentation = ''        if not self.hitCharData:            indentation += self.newlineChar + (self.indentationChar * self.indentationLevel)##            indentation += self.indentationChar * self.indentationLevel        else:            self.hitCharData = False##        self.xmlOutput += '%s</%s>%s' % (indentation, self.elementStack.pop(), self.newlineChar)        self.xmlOutput += '%s</%s>' % (indentation, self.elementStack.pop())    def getXMLString(self):        return self.xmlOutput[1:]def xmlprettyprint(xmlstr, spaces=4):    xpp = XMLPrettyPrinter(indentationChar=' ' * spaces)    xml.sax.parseString(xmlstr, xpp)    return xpp.getXMLString()if isMain(__name__):    simpleTestString = """<one>some text<two anattr="booga">two's data</two></one>"""    print xmlprettyprint(simpleTestString)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -