IXMLDOMNode
Extends the core node with support for data types, namespaces, document type definitions (DTDs), and schemas.
The following script example uses books.xml to create an IXMLDOMNode, currNode, and display its XML.
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0"); var currNode; xmlDoc.async = false; xmlDoc.load("books.xml"); if (xmlDoc.parseError.errorCode != 0) { var myErr = xmlDoc.parseError; WScript.Echo("You have error " + myErr.reason); } else { currNode = xmlDoc.documentElement.childNodes.item(1); WScript.Echo (currNode.xml); }
Output
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
The following Microsoft® Visual Basic® example uses books.xml to create an IXMLDOMNode, currNode, and display its XML.
Dim xmlDoc As New Msxml2.DOMDocument30 Dim currNode As IXMLDOMNode xmlDoc.async = False xmlDoc.Load App.Path & "\books.xml" If (xmlDoc.parseError.errorCode <> 0) Then Dim myErr Set myErr = xmlDoc.parseError MsgBox("You have error " & myErr.reason) Else Set currNode = xmlDoc.documentElement.childNodes.Item(1) MsgBox currNode.xml End If
Output
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
The following C/C++ example creates and appends a new node to the document root.
#include <tchar.h> #import "msxml6.dll" using namespace MSXML2; inline void TESTHR( HRESULT _hr ) { if FAILED(_hr) throw(_hr); } void XMLDOMNodeSample() { try { MSXML2::IXMLDOMDocumentPtr docPtr; MSXML2::IXMLDOMNodePtr DOMNodePtr; // init TESTHR(CoInitialize(NULL)); TESTHR(docPtr.CreateInstance("Msxml2.DOMDocument.6.0")); VARIANT vtTemp; vtTemp.vt=VT_I2; vtTemp.iVal = 1; //NODE_ELEMENT // load a document _variant_t varXml("c:\\Temp\\books.xml"); _variant_t varOut((bool)TRUE); varOut = docPtr->load(varXml); if ((bool)varOut == FALSE) throw(0); MessageBox(NULL, _bstr_t(docPtr->xml), _T("Original Document"), MB_OK); DOMNodePtr = docPtr->createNode(vtTemp, "VIDEOS", ""); docPtr->documentElement->appendChild(DOMNodePtr); MessageBox(NULL, _bstr_t(docPtr->xml), _T("New Document"), MB_OK); } catch(...) { MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK); } CoUninitialize(); } int main() { XMLDOMNodeSample(); return 0; }
Implementation:
msxml3.dll, msxml2.lib (MSXML 3.0)
msxml4.dll, msxml2.lib (MSXML 4.0)
msxml5.dll, msxml2.lib (MSXML 5.0 for Microsoft Office Applications)
msxml6.dll, msxml2.lib (MSXML 6.0)
Header and IDL files: msxml2.h, msxml2.idl
Implemented in: MSXML 2.0 and later