Over a million developers have joined DZone.

ColdFusion Quickie - Turning a set of XML nodes into a string.

· Web Dev Zone

Learn why developers are gravitating towards Node and its ability to retain and leverage the skills of JavaScript developers and the ability to deliver projects faster than other languages can.  Brought to you in partnership with IBM.

Yesterday a reader sent me a question concerning XML handling and ColdFusion, and while it was rather simple, I thought others might like to see a quick demo of it as well. Imagine for a minute this simple XML data.

<article title="The Title">
  <author>
		<name>Raymond Camden</name>
		<email>raymondcamden@gmail.com</email>
	</author>
	<body>
		<paragraph>
			This is some text. Woot.
		</paragraph>
		<paragraph>
			Another paragraph of text.
		</paragraph>
		<paragraph>
			Getting tired of making stuff up.
		</paragraph>
		<paragraph>
			I should be working on my presentation.
		</paragraph>
	</body>
</article>

The XML above describes a simple article. You've got a title, an author object, and paragraphs of text each as their own XML node. The reader simply wanted to know how to get those paragraphs into one string variable. You may be tempted to do this:

<cfset paragraphs = articleOb.article.body.paragraph>

But doing so returns you one XML node.

One of the oddities of ColdFusion's XML handling is that it treats some things as a singular value and some things like an array. So if I take the same "address" and run arrayLen() on it, like so...

<cfdump var="#arrayLen(articleOb.article.body.paragraph)#">

I'll get 4. This is the clue then that tells us to simply loop over them like an array and append each value to a string.

<cfset text = "">
<cfloop index="p" array="#articleOb.article.body.paragraph#">
  <cfset text &= "<p>" & p.xmlText & "</p>">
</cfloop>

<cfoutput>#text#</cfoutput>

Note that I've also wrapped the values in P tags to help me display it later.



Make the transition to Node.js if you are Java, PHP, Rails or .NET developer with these resources to help jumpstart your Node.js knowledge plus pick up some development tips.  Brought to you in partnership with IBM.

Topics:

Published at DZone with permission of Raymond Camden, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}