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