且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用 VB 6.0 生成格式良好的 XML 文件?

更新时间:2023-11-25 14:45:52

我制作了一个小型的 XML 漂亮打印机,效果很好:

I've made a small XML pretty printer that works quite well:

Sub PrettyPrint(Parent As IXMLDOMNode, Optional Level As Integer)
  Dim Node As IXMLDOMNode
  Dim Indent As IXMLDOMText

  If Not Parent.ParentNode Is Nothing And Parent.ChildNodes.Length > 0 Then
    For Each Node In Parent.ChildNodes
      Set Indent = Node.OwnerDocument.createTextNode(vbNewLine & String(Level, vbTab))

      If Node.NodeType = NODE_TEXT Then
        If Trim(Node.Text) = "" Then
          Parent.RemoveChild Node
        End If
      ElseIf Node.PreviousSibling Is Nothing Then
        Parent.InsertBefore Indent, Node
      ElseIf Node.PreviousSibling.NodeType <> NODE_TEXT Then
        Parent.InsertBefore Indent, Node
      End If
    Next Node
  End If

  If Parent.ChildNodes.Length > 0 Then
    For Each Node In Parent.ChildNodes
      If Node.NodeType <> NODE_TEXT Then PrettyPrint Node, Level + 1
    Next Node
  End If
End Sub

您可以通过传入 DOMDocument 对象并将 Level 参数留空来调用它.

You call it by passing in the DOMDocument object and leaving the Level parameter blank.

  • 它对文档进行就地修改.
  • 您将丢失所有可能存在的无关紧要的空格(XML 元素之间的空格).
  • 它使用一个制表符来缩进.
  • 它还可以缩进注释和处理说明等.
  • 它适用于所有版本的 DOMDocument.
Dim XmlDoc as New MSXML2.DOMDocument40

' create/load your xml document

PrettyPrint XmlDoc

MsgBox XmlDoc.xml

还有一种简单的方法可以做到这一点通过 SAX.

There also is an easy way to do it via SAX.