Как я могу распечатать исходный XML-код с помощью VB6 и MSXML?

Я искал это в течение нескольких месяцев и в основном находил сайты, задающие тот же вопрос.

Ответы, которые я делал, всегда касались .NET или C ++ или задействовали XSLT.


person Daniel Rikowski    schedule 13.07.2009    source источник
comment
Вы также можете посмотреть здесь: stackoverflow.com/q/10202576/18771   -  person Tomalak    schedule 18.04.2012


Ответы (1)


После месяцев исследований я пришел к этому.

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

Используя документ:

Public Function PrettyPrintDocument(Doc As DOMDocument60) As String
  PrettyPrintDocument = PrettyPrintXML(Doc.XML)
End Function
person Daniel Rikowski    schedule 13.07.2009
comment
Очень хорошо. Я очень долго искал что-то настолько простое, что не требовало дополнительных библиотек или рекурсии. - person jveazey; 07.11.2010
comment
Превосходно - большое спасибо за то, что нашли время разработать и опубликовать это. - person w5m; 09.03.2015
comment
Как бы вы использовали его, если информация берется через запрос sql-сервера? - person Pedro Ávila; 17.06.2018
comment
Какую ссылку вы используете для использования SAXXMLReader60 - person Pedro Ávila; 17.06.2018
comment
Мне нужно создать XML-файл, используя vb6, используя запрос sql - person Pedro Ávila; 17.06.2018
comment
Ссылка Microsoft XML, v6.0 от msxml6.dll - person AdamsTips; 23.04.2021