Share via


IXMLDOMText

 

Represents the text content of an element or attribute.

JScript Example

The following script example creates an IXMLDOMText object (objText), and inserts it before the first child of the root. The insertBefore method returns another IXMLDOMText object, objText1.

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");  
var root;  
var objText;  
var objText1;  
var objNode;  
xmlDoc.loadXML("<root><child/></root>");  
if (xmlDoc.parseError.errorCode != 0) {  
   var myErr = xmlDoc.parseError;  
   WScript.Echo("You have error " + myErr.reason);  
} else {  
   root = xmlDoc.documentElement;  
   objText = xmlDoc.createTextNode("Hello World!");  
   objText1 = root.insertBefore(objText, root.firstChild);  
   WScript.Echo(root.xml);  
}  
  

Output

<root>Hello World!<child/></root>

C/C++ Example

The following C/C++ example creates and appends a new text node to the root document element.

#include “msxml6.h”  
  
inline void TESTHR( HRESULT _hr )   
   { if FAILED(_hr) throw(_hr); }  
  
void XMLDOMText()  
{  
   try {  
      IXMLDOMDocumentPtr docPtr;  
      IXMLDOMNodePtr DOMNodePtr;  
      IXMLDOMNamedNodeMapPtr DOMNamedNodeMapPtr;  
  
      //init  
      TESTHR(CoInitialize(NULL));   
      TESTHR(docPtr.CreateInstance("Msxml2.DOMDocument.6.0"));  
  
      // load a document  
      _variant_t varXml("<root><child/></root>");  
      _variant_t varOut((bool)TRUE);  
      varOut = docPtr->loadXML(varXml);  
      if ((bool)varOut == FALSE)  
         throw(0);  
  
      DOMNodePtr = docPtr->createTextNode("Hello World!");  
  
      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();  
}  
  

Output

<root>Hello World!<child/></root>

Remarks

XML refers to this text content as character data and distinguishes it from markup, the tags that modify that character data. If there is no markup inside an element, that element's text is contained in a single IXMLDOMText object that is the child of the element. If there is markup inside an element, it is parsed into child elements that are siblings of the IXMLDOMText object(s). (The content of the markup elements also appears within text nodes, which are the children of the specific markup element.)

When a document is first made available to the XML Document Object Model (DOM), all text is normalized: there is only one text node for each block of text. Users can create adjacent text nodes that represent the contents of a given element without any intervening markup but should be aware that there is no way to represent the separations between these nodes, so they will not persist between XML DOM sessions.

The normalize method on the IXMLDOMElement object merges adjacent text nodes into a single node. You should normalize before starting any operations that depend on a particular document structure to ensure that subsequent sessions will operate on the same structure.

Requirements

Implementation:

msxml3.dll, msxml2.lib (MSXML 3.0)

msxml6.dll, msxml6.lib (MSXML 6.0)

Header and IDL files:

msxml2.h, msxml2.idl, msxml6.h, msxml6.idl

Versioning

Implemented in:

MSXML , 3.0, MSXML 6.0

See Also

IXMLDOMElement
IXMLDOMText Members
normalize Method