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