This simple SAX to DOM example uses Microsoft® Visual Basic® code that creates DOMDocument
and MXXMLWriter
objects, sets the MXXMLWriter
object as the ContentHandler
, and then sets the output
property of the MXXMLWriter
object as the DOMDocument
object. The ContentHandler
method calls cause nodes to be built as the root document instance of the provided document. At the end of the procedure, DOM methods are used to return the name of the author, and to display the name in a message box.
To run the code sample
Private Sub Command1_Click() Dim xmlDoc As New Msxml2.DOMDocument50 'If using SAX lexical handler, the following line is required. xmlDoc.validateOnParse = False Dim nodeList As IXMLDOMNodeList Dim wrt As New MXXMLWriter50 Dim cnth As IVBSAXContentHandler 'If using SAX lexical handler, the following line is required. Dim lexh As IVBSAXLexicalHandler Dim atrs As New SAXAttributes50 Dim objNodeList Set cnth = wrt 'If using SAX lexical handler, the following line is required. Set lexh = wrt wrt.output = xmlDoc 'Configures the writer to indent elements. wrt.indent = True 'Starts the document. cnth.startDocument 'Adds the XML declaration. cnth.processingInstruction "xml", "version='1.0'" 'Inserts DOCTYPE delcaration for DTD in DOM output. lexh.startDTD "catalog", "", "books.dtd" lexh.endDTD 'You can remove or comment out previous two lines if 'you are not linking to a DTD. 'Adds the <catalog> element to the page. cnth.startElement "", "", "catalog", atrs 'Adds the id attribute to the collection witht he "bk0101" value. atrs.addAttribute "", "", "id", "CDATA", "bk101" 'Creates the <book id="bk101"> tag. cnth.startElement "", "", "book", atrs 'Clears the attribute collection. atrs.Clear 'Creates the <author>Gambardella, Matthew</author> string. cnth.startElement "", "", "author", atrs cnth.characters "Gambardella, Matthew" cnth.endElement "", "", "author" 'Creates the <title>XML Developer's Guide</title> string. cnth.startElement "", "", "title", atrs cnth.characters "XML Developer's Guide" cnth.endElement "", "", "title" 'Creates the <description>An in-depth look at...</description> string. cnth.startElement "", "", "description", atrs cnth.characters "An in-depth look at creating applications with XML" cnth.endElement "", "", "description" 'Adds closing tags for <book> and <catalog> elements. cnth.endElement "", "", "book" cnth.endElement "", "", "catalog" 'Ends the document. cnth.endDocument 'Displays the author's name in a message box. Set objNodeList = xmlDoc.getElementsByTagName("author") MsgBox objNodeList.Item(0).Text End Sub
Setting a DOMDocument Object as MXXMLWriter Output | MXXMLWriter CoClass | output Property | DOMDocument