本文介绍了如何使用 VB 6.0 生成格式良好的 XML 文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm working on Visual Basic 6.0 Project and i need to generate a well formatted XML file whose looks like this:

<Myinfo>
      <FirstName>My First Name</FirstName>
      <LastName>My Last Name</LastName>
      <StreetAdd>My Address</StreetAdd>
<MyInfo>

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

Note: i got the job done generating the XML file, but i'm still in need for the right formatting as shown above.

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

The XML file i generated is formatted like in one single line like this:

<Myinfo><FirstName>My First Name</FirstName><LastName>My Last Name</LastName><StreetAdd>My Address</StreetAdd><MyInfo> .

推荐答案

我制作了一个小型的 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.

这篇关于如何使用 VB 6.0 生成格式良好的 XML 文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-22 20:03