devxlogo

Use a Data Stream as a Source for DOMDocument

Use a Data Stream as a Source for DOMDocument

Question:

Instead of using:

oXML.Load "c:program filesxml notepadAppntmts.xml"

I want to do something like:

oXML.Load Command()

where the Visual Basic Command function returns an XML formatted data stream passed on the command line. In the previous example, the Load accepts the string without complaint, but none of the document properties return anything valuable. It seems to be treating the data stream as a URL.

Answer:

If your Command object returns a String type, then all you need to do is use the .LoadXML method instead:

oXML.LoadXML Command()

LoadXML takes a well-formed XML string and converts it into a DOM object. For example, let’s say that you wanted to create a stub XML structure:

function getStub(rootName as String,collectionName as String)   dim buffer as String   buffer=""+vbCRLF   buffer=buffer+""   buffer=buffer+""   getStub=bufferend functionsub main()   dim xmlDoc as DOMDocument   set xmlDoc=new DOMDocument   ' Make sure that the parser performs the   ' processing synchronously   xmlDoc.async=false   xmlDoc.loadXML getStub("document","invoices")   ...end main

By the way, you can use the .load function to load an already existing DOM into another DOM:

xmlDoc.load myDoc

This will actually create a duplicate to myDoc within xmlDoc, rather than simply passing a pointer.

devx-admin

Share the Post: