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 ColdFusion MX 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 |
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#">