<?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>Why So Scared &#187; jQuery</title>
	<atom:link href="http://www.whysoscared.com/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.whysoscared.com</link>
	<description>A blog about; Programming, Music and Random Stuff</description>
	<lastBuildDate>Thu, 10 Jun 2010 02:43:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Parse MusicBrainz XML with jQuery</title>
		<link>http://www.whysoscared.com/parse-musicbrainz-jquery/</link>
		<comments>http://www.whysoscared.com/parse-musicbrainz-jquery/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:17:22 +0000</pubDate>
		<dc:creator>Juo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[tidbit]]></category>

		<guid isPermaLink="false">http://www.whysoscared.com/?p=324</guid>
		<description><![CDATA[For a project I&#8217;m working on to help people make posts over at http://www.warez-dnb.com/ i&#8217;ve been looking into parsing MusicBrainz, I thought id make a quick post to discuss the challenges and solutions I&#8217;ve come up with so far.
&#60;html&#62;
 &#60;head&#62;
 &#60;script type="text/javascript" src="jquery.js"&#62;&#60;/script&#62;
 &#60;script type="text/javascript"&#62;
 $(document).ready(function(){
	$.ajax({
		type: "GET",
		url: "http://www.warez-dnb.com/test/getid.php?name=Caspa",
		dataType: "xml",
		success: function(xml) {
			$(xml).find('artist-list').each(function() {

				alert($(this).find("name").text());
			});
		}
	});
 });
 &#60;/script&#62;
 &#60;/head&#62;
 [...]]]></description>
			<content:encoded><![CDATA[<p>For a project I&#8217;m working on to help people make posts over at http://www.warez-dnb.com/ i&#8217;ve been looking into parsing MusicBrainz, I thought id make a quick post to discuss the challenges and solutions I&#8217;ve come up with so far.</p>
<pre style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New', monospace; font-size: 9pt; line-height: 1.3em; margin-top: 0em;"><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>html<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>head<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>script type<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">=</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"text/javascript"</span> src<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">=</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"jquery.js"</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>/script<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>script type<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">=</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"text/javascript"</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">$</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">document</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">.</span>ready<span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">function</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">{</span>
	<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">$</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">.</span>ajax<span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">{</span>
		type: <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"GET"</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">,</span>
		url: <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"http://www.warez-dnb.com/test/getid.php?name=Caspa"</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">,</span>
		dataType: <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"xml"</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">,</span>
		<span style="padding-top: 0.2em; padding-bottom: 0.1em;"><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #21439c;">success</span>: <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">function</span>(<span style="padding-top: 0.2em; padding-bottom: 0.1em;">xml</span>)</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em;">{</span>
			<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">$</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span>xml<span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">.</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">find</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">'artist-list'</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">.</span>each<span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">function</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em;">{</span>

				<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">alert</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">$</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">this</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">.</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">find</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"name"</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">.</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">text</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">(</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span>;
			<span style="padding-top: 0.2em; padding-bottom: 0.1em;">}</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span>;
		<span style="padding-top: 0.2em; padding-bottom: 0.1em;">}</span>
	<span style="padding-top: 0.2em; padding-bottom: 0.1em;">}</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span>;
<span style="padding-top: 0.2em; padding-bottom: 0.1em;"> }</span><span style="padding-top: 0.2em; padding-bottom: 0.1em;">)</span>;
<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;"> &lt;</span>/script<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>/head<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>body<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>

 <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>/body<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span>
<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&lt;</span>/html<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">&gt;</span></pre>
<pre style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New', monospace; font-size: 9pt; line-height: 1.3em; margin-top: 0em;"><span style="color: #ff5600;">
</span></pre>
<pre style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New', monospace; font-size: 9pt; line-height: 1.3em; margin-top: 0em;"><span style="color: #ff5600;"><span style="color: #000000;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"><span style="color: #00a33f;">

</span></span></span></span></pre>
<p>This is the index.html file and jQuery code, its pretty simple, I was just testing that I could get a valid connection, then parsing the XML within artist-list and outputting anything that has the XML tag name</p>
<p>One question that might arise from looking at this code is why the url is hosted at warez-dnb, jQuery wont let you import XML from a remote web host, it has to be from the local server, i&#8217;ve written an extremely simple PHP function that will query musicbrainz and copy the result it gets to host it locally.</p>
<pre style="font-family: 'Bitstream Vera Sans Mono', Monaco, 'Courier New', monospace; font-size: 9pt; line-height: 1.3em; margin-top: 0em;"><span style="padding-top: 0.2em; padding-bottom: 0.1em;">&lt;?php
<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #919191;">// Set your return content type</span>
<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">header</span>(<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">'<span style="padding-top: 0.2em; padding-bottom: 0.1em;">Content-type: application/xml</span>'</span>);

<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #919191;">// Website url to open</span>
<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$daurl</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">=</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">'<span style="padding-top: 0.2em; padding-bottom: 0.1em;">http://musicbrainz.org/ws/1/artist/?type=xml&amp;name=</span>'</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">.</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em;">$_GET</span>[<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"<span style="padding-top: 0.2em; padding-bottom: 0.1em;">name</span>"</span>];

<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #919191;">// Get that website's content</span>
<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$handle</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">=</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">fopen</span>(<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$daurl</span>, <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #00a33f;">"<span style="padding-top: 0.2em; padding-bottom: 0.1em;">r</span>"</span>);

<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #919191;">// If there is something, read and return</span>
<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">if</span> (<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$handle</span>) {
    <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">while</span> (<span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">!</span><span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">feof</span>(<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$handle</span>)) {
        <span style="padding-top: 0.2em; padding-bottom: 0.1em;">$buffer</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #ff5600;">=</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">fgets</span>(<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$handle</span>, <span style="padding-top: 0.2em; padding-bottom: 0.1em;">4096</span>);
        <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">echo</span> <span style="padding-top: 0.2em; padding-bottom: 0.1em;">$buffer</span>;
    }
    <span style="padding-top: 0.2em; padding-bottom: 0.1em; color: #a535ae;">fclose</span>(<span style="padding-top: 0.2em; padding-bottom: 0.1em;">$handle</span>);
}
<span style="padding-top: 0.2em; padding-bottom: 0.1em;">?</span>&gt;</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.whysoscared.com/parse-musicbrainz-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
