Well... Really, it doesn't work *at all*. You're not using an XML parser. It's an HTML parser. Sure, it will do some kind of passable job of parsing some kinds of XML, sort of, in some browsers.
Why not use a real XML parser? function parseXML( xml ) { if( window.ActiveXObject && window.GetObject ) { var dom = new ActiveXObject( 'Microsoft.XMLDOM' ); dom.loadXML( xml ); return dom; } if( window.DOMParser ) return new DOMParser().parseFromString( xml, 'text/xml' ); throw new Error( 'No XML parser available' ); } A quick test: var dom = parseXML('<foo what="isit"><bar>howdy</bar></foo>'); var $dom = $(dom); console.log( $dom.find('foo').attr('what') ); // "isit" console.log( $dom.find('bar').text() ); // "howdy" You could make it a plugin: jQuery.parseXML = function( xml ) { return jQuery( parseXML(xml) ); }; And then you can replace the first two lines of the test code above with: var $dom = $.parseXML('<foo what="isit"><bar>howdy</bar></foo>'); -Mike > From: KenLG > > It may not be supported but it works great...usually. > > As far as find being case-sensitive, the weird thing is that > it doesn't necessarily seem true. I could lcase the tags in > the XML but still do the find against the mixed case element > name and it still works. I had this suspicion that jquery is > doing that find in a case- insensitive way. > > Actually, something I forgot to try: FireFox 3 works just > fine with the mixed case XML. Weird. I guess I'll just have > to deal until FF2 gets phased out. > > Thanks, > > kn > > On Oct 6, 2:42 am, "Erik Beeson" <[EMAIL PROTECTED]> wrote: > > To my knowledge, XML parsing via the jQuery constructor > isn't supported. > > > > See here:http://dev.jquery.com/ticket/3143 > > > > --Erik > > > > > > > > On Sat, Oct 4, 2008 at 12:29 PM, KenLG <[EMAIL PROTECTED]> wrote: > > > > > For much of my app, I'm doing an Ajax hit to the server > to grab XML. > > > That works great. > > > > > But, in some cases, I've got too many pieces of data (unrelated) > > > that I need to pull so I'm trying to do a simple passthrough from > > > the server side (I'm using ASP.Net). So, I'll either > output from SQL > > > Server or hand-stitch some XML and write it to the page. > > > > > Whenever I do this passthrough (whether it comes from SQL > Server or > > > from my own efforts), the XML doesn't get parsed by Jquery. > > > > > For example: > > > > > var sTestXML = '<?xml version="1.0"?>\r > > > \n<EventContacts><EventContact><EventContactData>Hello</ > > > EventContactData></EventContact></EventContacts>\r\n'; > > > > > var test = $(sTestXML); > > > > > alert(test.find("EventContact").length); > > > > > will result in the alert showing zero. > > > > > Now, if I lower case some of the tags (and this will vary > from XML > > > doc to XML doc but usually it's the root and object-level tags), > > > it'll work. What's going on here?- Hide quoted text - > > > > - Show quoted text - >