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.
XmlChildPos(elem,childName,N)
IsXmlElem, XmlElemNew, XmlSearch, XmlTransform; "Using XML and WDDX" in the ColdFusion Developer's 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 elem parameter. |
| 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#">