我正在开发 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)
我制作了一个小型 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参数留空来调用它。
DOMDocument.Dim XmlDoc as New MSXML2.DOMDocument40
' create/load your xml document
PrettyPrint XmlDoc
MsgBox XmlDoc.xml
Run Code Online (Sandbox Code Playgroud)
还有一种通过 SAX实现的简单方法。
| 归档时间: |
|
| 查看次数: |
24960 次 |
| 最近记录: |