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