<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Spreading Funkyness &#187; xml</title>
	<atom:link href="http://spreadingfunkyness.com/category/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://spreadingfunkyness.com</link>
	<description>RIAbilitating the Internet with web apps, ria, iphone and ipad apps.</description>
	<lastBuildDate>Tue, 06 Jul 2010 21:37:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<cloud domain='spreadingfunkyness.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Parsing xml in Flex &#8211; The case of tag names with a dash</title>
		<link>http://spreadingfunkyness.com/parsing-xml-in-flex-the-case-of-tag-names-with-a-dash/</link>
		<comments>http://spreadingfunkyness.com/parsing-xml-in-flex-the-case-of-tag-names-with-a-dash/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 09:54:36 +0000</pubDate>
		<dc:creator>Cesare</dc:creator>
				<category><![CDATA[adobeair]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://spreadingfunkyness.com/19/</guid>
		<description><![CDATA[I am a fan of json. I use it extensively but sometimes I am forced to use xml. A pretty well know way to parse xml in Flex and Adobe air is the following: var xml:XML = new XML("&#60;data&#62;&#60;tag&#62;content&#60;/tag&#62;&#60;/data&#62;"); private function parse():void { for each (var t:XML in xml.children()) { trace("tag name: "+t.name()+" tag content ...]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin: 0px 10px 0px 0px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fspreadingfunkyness.com%2Fparsing-xml-in-flex-the-case-of-tag-names-with-a-dash%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fspreadingfunkyness.com%2Fparsing-xml-in-flex-the-case-of-tag-names-with-a-dash%2F&amp;source=_funkyboy&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>I am a fan of <a href="http://www.json.org/" title="Json">json</a>.<br />
I use it extensively but sometimes I am forced to use xml. A pretty well know way to parse xml in Flex and Adobe air is the following: <br/><br/></p>
<pre>
<span style="color: #6699cc">  var</span> xml:XML = <span style="color: #0033ff">new</span> XML(<span style:"color: #BC0000">"&lt;data&gt;&lt;tag&gt;content&lt;/tag&gt;&lt;/data&gt;"</span>);
<span style="color: #0033ff">  private</span> <span style="color: #339966">function</span> parse():<span style="color: #0033ff">void</span> {
	<span style="color: #0033ff"> for</span> <span style="color: #0033ff">each</span> (<span style="color: #6699cc">var</span> t:XML <span style="color: #0033ff">in</span> xml.children()) {
		<span style="color: #cc6666"><span class="Apple-tab-span" style="white-space: pre"></span>trace</span>(<span style="color: #990000">"tag name: "</span>+t.name()+<span style="color: #990000">" tag content "</span>+t.text());
	}
  }
</pre>
<p><br/><br />
Sometimes you are not the one who establishes tag names, e.g. xml comes from a webservice and you have to use it as it is. In developing <a href="http://spreadingfunkyness.com/posty/">Posty</a> I had to parse xml coming from a microblogging service, <a href="http://www.tumblr.com">Tumblr</a>. A sample xml returned by tumblr is the following. <br/><br/></p>
<pre>&lt;<span style="color: #6699cc">post</span> id="30451729" ...&gt;
	  &lt;<span style="color: #6699cc">regular-body</span>&gt;Text of my post...&lt;/<span style="color: #6699cc">regular-body</span>&gt;
&lt;/<span style="color: #6699cc">post</span>&gt;
</pre>
<p><br/><br />
Notice there is a dash in some tag name. To render data you parse the xml and extract relevant data. Adopting the same approach explained above, to retrieve the content of a tag you&#8217;d write:<br />
<br/></p>
<pre><span style="color: #0033ff">  for each</span> (<span style="color: #6699cc">var</span> x:XML <span style="color: #0033ff">in</span> xml.posts.post) {
<span style="color: #cc6666">    trace</span>(<span style="color: #990000">"my regular body is "</span>+ x.regular-body);
  }
</pre>
<p><br/><br />
You will not be able to run this code. The compiler will say: access of undefined property body. What! I can&#8217;t parse xml with dashed tag names? No you can&#8217;t. More evidence from here[link]. The solution is to exploit a different syntax, which allows to access data in a dashed-name tag:<br />
<br/></p>
<pre><span style="color: #0033ff">  for each</span> (<span style="color: #6699cc">var</span> x:XML <span style="color: #0033ff">in</span> xml.posts.post) {
<span style="color: #000000"></span><span style="color: #cc6666">    trace</span>(<span style="color: #990000">"my regular body is "</span>+ x.child(<span style="color: #990000">"regular-body"</span>));
  }</pre>
<p><br/><br />
The compiler will be happy and your xml will be parsed successfully.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://spreadingfunkyness.com/wp-content/plugins/add-to-any/share_save_120_16.gif" width="120" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://spreadingfunkyness.com/parsing-xml-in-flex-the-case-of-tag-names-with-a-dash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
