2009-07-13 7 views

Répondre

30

Après des mois de recherche, j'ai trouvé cela.

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 

Utilisation d'un document:

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

Very nice. Je cherchais quelque chose d'aussi simple - qui ne nécessitait pas de bibliothèques supplémentaires ou de récursion - depuis très longtemps. – jveazey

+1

Superbe - merci beaucoup d'avoir pris le temps de développer et de poster ceci. – w5m

Questions connexes