如何使用 VB 6.0 生成格式良好的 XML 文件? [英] How to Generate a well formatted XML file using VB 6.0?

查看:32
本文介绍了如何使用 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 文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆