2009-07-13 24 views

Trả lời

30

Sau nhiều tháng nghiên cứu, tôi đã tìm ra điều này.

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 

Sử dụng một tài liệu:

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

Rất đẹp. Tôi đã tìm kiếm một cái gì đó đơn giản này - mà không yêu cầu thư viện bổ sung hoặc đệ quy - trong một thời gian rất dài. – jveazey

+1

Tuyệt vời - cảm ơn bạn rất nhiều vì đã dành thời gian để phát triển và đăng bài này. – w5m

Các vấn đề liên quan