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