Ever since BarCampNYC, I've been geeking out working with jQuery, a project by
my good friend
John Resig. It's a JavaScript
library that takes ideas from Prototype and Behavior and some good smarts to
make writing fancy JavaScript pieces so easy I ask myself "Why wasn't this
available before?" I won't bother going into the details of how the library
works, but it's based around querying documents. It supports CSS1, CSS2 and
CSS3 selectors (and some simple XPath) to query documents for fun and profit.
In the car ride back from BarCampNYC, I asked Resig if he knew whether or not
jQuery would work for querying on xml document objects. "Well, I'm not sure"
was the response. I took the time today to test that theory. Becuase jQuery
does not rely on
document.getElementById() to look for elements
the way Prototype does. Bypassing that limitation, you can successfully query
XML documents and even subdocuments of HTML or XML. This is fantastic.
Today's magic was a demo I wrote to pull my rss feed via XMLHttpRequest (AJAX)
and very simply pull the data I wanted to use out of the XML document object
returned.
The gist of the magic of jQuery revolves around the
$() function.
This function is generations ahead of what the Prototype
$()
function provides.
The magic is here, in the XMLHttpRequest onreadystatechange function
// For each 'item' element in the RSS document, alert() out the title.
var entries = $("item",xml.responseXML).each(
function() {
var title = $(this).find("title").text();
alert("Title: " + title);
}
The actual demo is quite impressive, I think. I can query through a complex XML
document in only a few lines of code. Select the data you want, use it, go
about your life. So simple!
View the RSS-to-HTML jQuery Demo