Skip to main content
Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.

XPath Support Expanded In ColdFusion 8

By Ben Nadel on
Tags: ColdFusion

I was just reading about some ColdFusion XPath functionality over on Anuj Gakhar's blog. One of the things that he demonstrated was that XmlSearch() could return things like count() and sum() on a node set. I was a little shocked that I had missed this as part of my XPath and XmlSearch() ColdFusion Tutorial. So, naturally, I went and tried it on my test server:

<!--- Create an XML document. --->
<cfxml variable="xmlData">



<!--- Get the sum of node values. --->
<cfset arrNodes = XmlSearch(
	"sum( //datum )"
	) />

<!--- Dump out resultant nodes. --->
<cfdump var="#arrNodes#" />

Running this, we get the following output:


Unbelievable! It worked.

After the shock of having missed this in my initial research wore off a bit, I realized that I was viewing the page as a ColdFusion 8 page (which we have running on an alternate port). Switch the page over to the ColdFusion 7 port and running the page again, I got the following ColdFusion error:

An error occured while Transforming an XML document. Can not convert #NUMBER to a NodeList!

Ahhh, that's what I am used to. Looks like ColdFusion 8 has beefed up the XPath support. And, indeed, looking at the ColdFusion 8 livedocs, I see this in the History:

ColdFusion 8: Added support for returning any valid XPath result, not just arrays of XML object nodes.

This is good to know. XPath and XmlSearch() are some very powerful tools to have in the tool belt, and it looks like ColdFusion 8 is making them even more powerful. Man, I love this language!

Tweet This Groovy post by @BenNadel - XPath Support Expanded In ColdFusion 8 Woot woot — you rock the party that rocks the body!

Reader Comments