Description
Gets the position of a child element within an XML document object.
Returns
The position, in an XmlChildren array, of the _N_th child that has the specified name.
Category
Function syntax
XmlChildPos(node, childName, index)
See also
IsXmlElem, XmlElemNew, XmlSearch, XmlTransform; Using XML and WDDX in the Developing ColdFusion Applications
History
ColdFusion (2018 release): Changed parameter name elem to node.
ColdFusion MX: Added this function.
Parameters
Parameter |
Description |
---|---|
node |
XML element within which to search. |
childName |
XML child element for which to search. Must be an immediate child of the node parameter. |
index |
Index of XMLchild element for which to search. |
Usage
You can use the returned index in the ArrayInsertAt and ArrayDeleteAt functions to change XML document objects. If the specified child is not found, the function returns -1.
Example
The following example searches XML document element, xmlobject .employee.name1, for its second Status element child and uses the position in an ArrayDeleteAt function to remove the element:
<!--- Create an XML document object ---> <cfxml variable="xmlobject"> <employee> <!-- A list of employees --> <name EmpType="Regular"> <first>Almanzo</first> <last>Wilder</last> <Status>Medical Absence</Status> <Status>Extended Leave</Status> </name> <name EmpType="Contract"> <first>Laura</first> <last>Ingalls</last> </name> </employee> </cfxml> <!--- Find the second Status child of the first employee.name element ---> <cfscript> elempos=XMLChildPos(xmlobject.employee.name[1], "Status", 2); ArrayDeleteAt(xmlobject.employee.name[1].XmlChildren, elempos); </cfscript> <!--- Dump the resulting document object to confirm the deletion ---> <cfdump var="#xmlobject#">