xmlExtractList(inString, tagName [, delimiter])
Last updated January 13, 2004
Version: 1 | Requires: ColdFusion MX | Library: DataManipulationLib
Description:
This UDF searches for all elements matching the specified tag name and returns a list from the text within those elements.
Return Values:
Returns a string.
Example:
<users>
<salesman>
<systemname>user</systemname>
<fullname>Mike Smith</fullname>
<email>MSmith@noDomain.com</email>
</salesman>
<salesman>
<systemname>user</systemname>
<fullname>mark Hendrix Smith</fullname>
<email>MHendrix@noDomain.com</email>
</salesman>
<salesman>
<systemname>user</systemname>
<fullname>Tammy Cochran</fullname>
<email>MCochran@noDomain.com</email>
</salesman>
<salesman>
<systemname>user</systemname>
<fullname>Mike Smith</fullname>
<email>MSmith@noDomain.com</email>
</salesman>
</users>
</cfxml>
<cfoutput>#xmlExtractList(EntryXML, "email")#</cfoutput>
Parameters:
| Name | Description | Required |
|---|---|---|
| inString | Either an XML object or a string representation. | Yes |
| tagName | Tag to look for. | Yes |
| delimiter | Delimiter for returned string. Defaults to a comma. | No |
Full UDF Source:
<!---
Extracts the text of named XML elements and returns it in a list.
@param inString Either an XML object or a string representation. (Required)
@param tagName Tag to look for. (Required)
@param delimiter Delimiter for returned string. Defaults to a comma. (Optional)
@return Returns a string.
@author Samuel Neff (sam@serndesign.com)
@version 1, March 16, 2004
--->
<cffunction name="xmlExtractList" returnType="string" output="no">
<cfargument name="inString" type="any">
<cfargument name="tagName" type="string">
<cfargument name="delim" default=",">
<cfset var inXML = "">
<cfset var elementsArray = "">
<cfset var valuesArray = arrayNew(1)>
<cfset var i=1>
<cfset var j=1>
<cfset var ret = "">
<cfif isXmlDoc(arguments.inString)>
<cfset inXML = arguments.inString>
<cfelse>
<cfset inXML = xmlParse(arguments.inString)>
</cfif>
<cfset elementsArray = xmlSearch(inXML, "//" & arguments.tagName)>
<cfloop index="j" from="1" to="#arrayLen(elementsArray)#">
<cfif elementsArray[j].xmlText neq "">
<cfset valuesArray[i] = elementsArray[j].xmlText>
<cfset i=i+1>
</cfif>
</cfloop>
<cfset ret = arrayToList(valuesArray, arguments.delim)>
<cfreturn ret>
</cffunction>
Search CFLib.org
Latest Additions
Shawn Porter added
DeMoronize
3 hour(s) ago
Chris Carey added
readPropertiesFi...
1 day(s) ago
Randy Johnson added
lastDayofWeek
3 day(s) ago
Frank Marion added
sitemapPing
7 day(s) ago
Top Rated
QuickSort
Rated 5.0, 3 time(s)
indentXml
Rated 5.0, 3 time(s)
queryColumnsToSt...
Rated 5.0, 3 time(s)
generateSsccAsn
Rated 5.0, 3 time(s)