appendChild Method
Appends a new child node as the last child of the node.
JScript Syntax
var objXMLDOMNode = oXMLDOMNode.appendChild(newChild);
Parameters
newChild
An object. Address of the new child node to be appended at the end of the list of children belonging to this node.
Return Value
An object. Returns the new child node successfully appended to the list.
Example
The following script example creates a new IXMLDOMNode
object, and then uses the appendChild
method to append it to the document's list of children. This example uses the resource file listed later in this topic.
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
var root;
var newNode;
xmlDoc.async = false;
xmlDoc.load("appendChild.xml");
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
WScript.Echo("You have error " + myErr.reason);
} else {
root = xmlDoc.documentElement;
WScript.Echo("Before appendChild:\n" + root.xml + "\n");
newNode = xmlDoc.createNode(1, "newChild", "");
root.appendChild(newNode);
WScript.Echo("After appendChild:\n" + root.xml);
}
Resource File
The JScript example uses the following file.
XSLT File: appendChild.xml
<?xml version='1.0'?>
<root>
<firstChild/>
</root>
Output
The JScript example outputs the following in a message box.
Before appendChild:
<root>
<firstChild/>
</root>
After appendChild:
<root>
<firstChild/>
<newChild/></root>
C/C++ Syntax
HRESULT appendChild(
IXMLDOMNode *newChild,
IXMLDOMNode **outNewChild);
Parameters
newChild
[in]
The address of the new child node to be appended to the end of the list of children of this node.
outNewChild
[out, retval]
The new child node successfully appended to the list. If Null, no object is created.
Return Values
S_OK
The value returned if successful.
E_INVALIDARG
The value returned if the newChild
parameter is Null.
E_FAIL
The value returned if an error occurs.
Remarks
Using this method is equivalent to calling insertBefore(newChild, null)
. For more information, see insertBefore Method.
If the newChild
parameter has an existing parent, the node is automatically removed from that parent before being inserted into its new location.
A node retains its namespace information even when moved. Moving a node does not create a namespace declaration; declarations are added when retrieving the XML source (through the save
method or the xml
property) to ensure that all namespaces are properly declared.
When inserting a node tree under another node that has a different owner document, the ownerDocument
property for each inserted node is changed to match the owner document of its new parent.
When moving a node tree to another document, the content of all entity reference nodes contained therein is updated to conform to the new document. If the new document does not declare an entity that was moved into it, the entity reference will have no children, and the old content is removed. Existing references to nodes under the entity reference are still valid, but the node whose parent previously was the entity reference now has a null parent.
MSXML 6.0 validates additions to the DOM only when the user explicitly calls validate Method1. This means that you do not have to add nodes to the tree in the same order as they are defined in the schema. The implication is that there may be intermediate states between calls to validate
where the DOM is invalid against the schema.
Versioning
Implemented in: MSXML 3.0 and MSXML 6.0
Applies to
IXMLDOMAttribute | IXMLDOMCDATASection | IXMLDOMCharacterData | IXMLDOMComment | IXMLDOMDocument-DOMDocument | IXMLDOMDocumentFragment | IXMLDOMDocumentType | IXMLDOMElement | IXMLDOMEntity | IXMLDOMEntityReference | IXMLDOMNode | IXMLDOMNotation | IXMLDOMProcessingInstruction | IXMLDOMText
See Also
save Method (DOMDocument)
xml Property1
ownerDocument Property