如何使用VB6和MSXML打印XML源代码?

Dan*_*ski 20 vb6 msxml pretty-print

我几个月来一直在关注这个问题,而且我主要发现网站都在问同样的问题.

我的答案发现总是面向.NET或C++或参与XSLT.

Dan*_*ski 31

经过数月的研究,我想出了这个.

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
Run Code Online (Sandbox Code Playgroud)

使用文件:

Public Function PrettyPrintDocument(Doc As DOMDocument60) As String
  PrettyPrintDocument = PrettyPrintXML(Doc.XML)
End Function
Run Code Online (Sandbox Code Playgroud)

  • 非常好.很长一段时间以来,我一直在寻找这种简单的东西 - 不需要额外的库或递归. (6认同)
  • 太棒了 - 非常感谢您花时间来开发和发布这个。 (2认同)