Formatting of generated XML - TechRepublic
General discussion
August 29, 2001 at 09:28 AM
andrew

Formatting of generated XML

by andrew . Updated 24 years, 8 months ago

I’m generating XML data in a VB6 project (using MSXML3). Here’s an example:

Dim oXDoc As MSXML2.DOMDocument30
Dim oXRoot As MSXML2.IXMLDOMNode
Dim oXNodeLevel2 As MSXML2.IXMLDOMNode
Dim oXNodeLevel3 As MSXML2.IXMLDOMNode
Dim oXNodeLevel4 As MSXML2.IXMLDOMNode

Set oXDoc = New MSXML2.DOMDocument30
Set oXRoot = oXDoc.appendChild(oXDoc.createNode(NODE_ELEMENT, “Root”, “”))

Set oXNodeLevel2 = oXRoot.appendChild(oXDoc.createNode(NODE_ELEMENT, “Level2”, “”))
Set oXNodeLevel4 = oXNodeLevel2.appendChild(oXDoc.createNode(NODE_ELEMENT, “Level4”, “”))
oXNodeLevel4.Text = “Level4 Text”
Set oXNodeLevel3 = oXNodeLevel2.appendChild(oXDoc.createNode(NODE_ELEMENT, “Level3”, “”))
Set oXNodeLevel4 = oXNodeLevel3.appendChild(oXDoc.createNode(NODE_ELEMENT, “Level4”, “”))
oXNodeLevel4.Text = “Level4 Text”

oXDoc.save “z:\test.xml”

End Sub

This works fine, except the oXDoc.save method writes out the XML all on one line, no line breaks or indents.

I’d like this to be easier for humans to read, i.e. on separate lines, with each sub-level indented.

What’s the best way to do this?

Walking through the oXDoc object and piecing together text is not an option.

If the best way is to apply an XSL transform, can you give me an example of what that would look like?

TIA

This discussion is locked

All Comments