2009-07-13 12 views

risposta

30

Dopo mesi di ricerche, mi sono inventato questo.

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 

Utilizzo di un documento:

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

Very nice. Stavo cercando qualcosa di così semplice - che non richiedesse librerie o ricorsioni aggiuntive - per un tempo molto lungo. – jveazey

+1

Superbo - grazie mille per aver dedicato del tempo per sviluppare e pubblicare questo. – w5m

Problemi correlati