Gets the position of a child element within an XML document object.
The position, in an XmlChildren array, of the Nth child that has the specified name.
XML functions
XmlChildPos
(elem, childName, N)
IsXmlElem, XmlElemNew, XmlSearch, XmlTransform; Chapter 35, "Using XML and WDDX" in ColdFusion MX Developers Guide
ColdFusion MX: Added this function.
Parameter | Description |
elem |
XML element within which to search. |
childName |
XML child element for which to search. Must be an immediate child of the |
N |
Index of XMLchild element for which to search. |
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.
The following example searches XML document element, xmlobject.employee.name[1]
, 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#">