2009-07-13 8 views

Odpowiedz

30

Po miesiącach badań wymyśliłem to.

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 

Korzystanie dokumentu:

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

Very nice. Szukałem czegoś tak prostego - które nie wymagało dodatkowych bibliotek ani rekursji - przez bardzo długi czas. – jveazey

+1

Superb - dziękuję bardzo za poświęcenie czasu na opracowanie i opublikowanie tego. – w5m

Powiązane problemy