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

5 xml vb6

我正在开发 Visual Basic 6.0 项目,需要生成一个格式良好的 XML 文件,其如下所示:

<Myinfo>
      <FirstName>My First Name</FirstName>
      <LastName>My Last Name</LastName>
      <StreetAdd>My Address</StreetAdd>
<MyInfo>
Run Code Online (Sandbox Code Playgroud)

注意:我已经完成了生成 XML 文件的工作,但我仍然需要正确的格式,如上所示。

我生成的 XML 文件的格式如下:

<Myinfo><FirstName>My First Name</FirstName><LastName>My Last Name</LastName><StreetAdd>My Address</StreetAdd><MyInfo> .
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 4

我制作了一个小型 XML 漂亮打印机,运行得很好:

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

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

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

' create/load your xml document

PrettyPrint XmlDoc

MsgBox XmlDoc.xml
Run Code Online (Sandbox Code Playgroud)

还有一种通过 SAX实现的简单方法。