Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I pretty-print XML source using VB6 and MSXML?

Tags:

I've been looking after this for months now and I mostly found sites asking the same question.

The answers I did found were always for .NET or C++ or involved XSLT.

like image 367
Daniel Rikowski Avatar asked Jul 13 '09 09:07

Daniel Rikowski


1 Answers

After months of research I've come up with this.

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 

Using a document:

Public Function PrettyPrintDocument(Doc As DOMDocument60) As String   PrettyPrintDocument = PrettyPrintXML(Doc.XML) End Function 
like image 64
Daniel Rikowski Avatar answered Sep 18 '22 18:09

Daniel Rikowski