Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at CFinNC 2009 (Raleigh, North Carolina) with: Asif Rasheed

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">
  •  
  • <data>
  • <datum>1.1</datum>
  • <datum>3.2</datum>
  • <datum>4.5</datum>
  • <datum>7.8</datum>
  • <datum>10.9</datum>
  • </data>
  •  
  • </cfxml>
  •  
  •  
  • <!--- Get the sum of node values. --->
  • <cfset arrNodes = XmlSearch(
  • xmlData,
  • "sum( //datum )"
  • ) />
  •  
  • <!--- Dump out resultant nodes. --->
  • <cfdump var="#arrNodes#" />

Running this, we get the following output:

27.5

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:

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 Fascinating post by @BenNadel - XPath Support Expanded In ColdFusion 8 Thanks my man — you rock the party that rocks the body!



Reader Comments