﻿/*
* jParse (Beta) v0.2
* jparse.kylerush.net
*
* Copyright (c) 2009 Kyle Rush
* Licensed under the MIT license.
* http://creativecommons.org/licenses/MIT/
*
* Date: Sunday, 15 Nov 2009 21:00 (GMT - 5:00)
*/
(function($) { $.fn.extend({ jParse: function(m) { var p = { ajaxOpts: { dataType: ($.browser.msie) ? "text" : "xml", contentType: 'text/xml' }, parentElement: 'item', elementTag: ['title', 'link', 'description'], output: '<div><h2><a href="jpet1">jpet0</a></h2><p>jpet2</p></div>' }; settings = $.extend(true, p, m); if (settings.precallback.constructor == Function) { settings.precallback() } var q = $(this); var r = /\:/; settings.ajaxOpts.success = function(d) { var e; if (typeof d == "string") { e = new ActiveXObject("Microsoft.XMLDOM"); e.async = false; e.loadXML(d) } else { e = d } var o = settings; var f = $(e).find(o.parentElement); var g = ''; var h = 0; function nodeChecker(a) { if (r.test(a) === true) { elemTagName = '[nodeName=' + a + ']' } else { elemTagName = a } } function processElementValue(a, b) { if (o.elementTag[n].elem === undefined) { nodeChecker(a); elemTagValue = $(b).find(elemTagName).text(); elemTagValue = elemTagValue.replace(/^\[CDATA\[/, '').replace(/\]\]$/, '') } else { nodeChecker(a); if (o.elementTag[n].attr === undefined) { elemTagValue = $(b).find(elemTagName).text() } else { elemTagValue = $(b).find(elemTagName).attr(o.elementTag[n].attr) } if (o.elementTag[n].exclude !== undefined) { var c = new RegExp(o.elementTag[n].exclude); if (c.test(elemTagValue) === true) { k = true } } } } if (o.count !== undefined) { jQuery(o.count).append(f.length) } for (var i = 0; i < f.length; i++) { if (h >= settings.limit) { $(q).append(g); if (settings.callback.constructor == Function) { settings.callback() } return false } var j = o.output; var k = false; for (var n = 0; n < o.elementTag.length; n++) { var l = new RegExp('jpet' + [n]); if (o.elementTag[n].constructor == String) { processElementValue(o.elementTag[n], f[i]) } else if (o.elementTag[n].constructor == Object) { processElementValue(o.elementTag[n].elem, f[i]) } j = j.replace(l, elemTagValue) } if (k !== true) { g += j; h++ } } $(q).append(g); if (settings.callback.constructor == Function) { settings.callback() } }; return this.each(function() { $.ajax(settings.ajaxOpts) }) } }) })(jQuery);
                    
