2009-07-13 83 views

回答

30

經過幾個月的研究,我已經想出了這個。

Public Function PrettyPrintXML(XML As String) As String 

    Dim Reader As New SAXXMLReader60 
    Dim Writer As New MXXMLWriter60 

    Writer.indent = True 
    Writer.standalone = False 
    Writer.omitXMLDeclaration = False 
    Writer.encoding = "utf-8" 

    Set Reader.contentHandler = Writer 
    Set Reader.dtdHandler = Writer 
    Set Reader.errorHandler = Writer 

    Call Reader.putProperty("http://xml.org/sax/properties/declaration-handler", _ 
      Writer) 
    Call Reader.putProperty("http://xml.org/sax/properties/lexical-handler", _ 
      Writer) 

    Call Reader.parse(XML) 

    PrettyPrintXML = Writer.output 

End Function 

使用文檔:

Public Function PrettyPrintDocument(Doc As DOMDocument60) As String 
    PrettyPrintDocument = PrettyPrintXML(Doc.XML) 
End Function 
+6

很不錯的。我一直在尋找這麼簡單的東西 - 這並不需要額外的庫或遞歸 - 很長一段時間。 – jveazey 2010-11-07 08:51:35