Если вы точно знаете, каким будет «имя» лимита, вы можете использовать XPath для этого. То, что вы ищете, является дочерним узлом «value» любых предельных узлов, где дочерний узел с именем «foo». В XPath это выглядит так:
'/data/limits/limit[name = 'foo']/value'
Это вернет массив узлов (так как совпадений может быть несколько), поэтому нам нужно обработать массив. Весь пример:
<cfset myXML = "
<data>
<limits>
<limit>
<name>foo</name>
<value>bar</value>
</limit>
<limit>
<name>foo2</name>
<value>bar2</value>
</limit>
</limits>
</data>
">
<!--- Parse the string into an XML Object --->
<cfset XMLDOM = xmlParse(myXML)>
<!--- Search the XML Object for specific nodes --->
<cfset nodeArray = xmlSearch(XMLDOM,"/data/limits/limit[name = 'foo']/value")>
<!--- Loop over the returned array of XML Node objects and print the XMLText (the node value) --->
<cfloop array="#nodeArray#" index="thisNode">
<cfoutput>#thisNode.xmlText#</cfoutput>
</cfloop>