[thelist] Problems traversing XML tree in JavaScript

VOLKAN ÖZÇELİK volkan.ozcelik at gmail.com
Tue Aug 2 06:51:54 CDT 2005


sorry I misunderstood, your code was for mozilla.
forget about my post.

Volkan.

On 8/2/05, VOLKAN ÖZÇELİK <volkan.ozcelik at gmail.com> wrote:
> Not surprisingly, mozilla (firefox) and ie define XHR (XmlHttpRequest)
> differently.
> 
> To work things correct you may use a wrapper:
> 
> _this = XHRequest.prototype;
> function XHRequest(){}
> _this.getObject = function() {
>    if (window.XMLHttpRequest) {
>        return new XMLHttpRequest();
>    }
>    else if (window.ActiveXObject) {
>        return new ActiveXObject("Microsoft.XMLHTTP");
>    }
>    else {
>        alert("XML HTTP Request support cannot be found!");
>        return null;
>    }
> };
> 
> var XHR = new XHRequest();
> 
> you can now use XHR just the same way you use XMLHTTPRequest.
> 
> [
> Code extracted from my somewhat-related article
> (http://www.codeproject.com/jscript/PseudoPopUp.asp)
> ]
> 
> Hope I understood correctly and hope that helps.
> 
> Volkan.
> 
> On 8/2/05, Paul Waring <paul at xk7.net> wrote:
> > I've currently got a relatively simple XML file that is structured like
> > so:
> >
> > <?xml version="1.0" ?>
> > <sites>
> >        <site id="10">Site name 1</site>
> >        <site id="11">Site name 2</site>
> >        [several more lines like the above]
> > </sites>
> >
> > I've managed to get JavaScript to read in the whole file, using some
> > code that I found on Site Point, and I'm getting the document using:
> >
> > response = req.responseXML.documentElement;
> >
> > where req is an instance of XMLHttpRequest() (or ActiveXObject in IE,
> > but I'm testing in Firefox first just to see if I can get *something* to
> > work). This is only set after I've checked that req.readyState is equal
> > to 4 and the response code is 200 (i.e. everything's gone ok with
> > regards to reading the document in). I then have the following two lines
> > of code, just for testing at the moment:
> >
> > var sites = response.getElementsByTagName('sites');
> > var sites2 = response.getElementsByTagName('site');
> >
> > Based on what I've read the getElementsByTagName() function to do, I
> > expect the first line to get back an array of one element containing
> > the first (and in this case only) <sites> tag, which I could then use to
> > further traverse the tree using sites[0].getElementsByTagName('site').
> > However, sites is being set to an undefined value and printing its
> > length gives 0, but sites2 is being set to an array of size 41, which is
> > correct.
> >
> > Have I done something obviously wrong? It seems to me like response is
> > already pointing to what I would expect sites[0] to be, but I want it to
> > instead hold the root of the XML document otherwise when I add extra
> > stuff later I won't be able to traverse it properly. I honestly don't
> > understand why this isn't working as I've just taken the majority of the
> > code from an article[1] and simply changed the names to reflect my
> > document structure.
> >
> > Thanks in advance,
> >
> > Paul
> >
> > [1] http://www.sitepoint.com/print/xml-javascript-mozilla
> >
> > --
> > Rogue Tory
> > http://www.roguetory.org.uk
> >
> >
> > --
> >
> > * * Please support the community that supports you.  * *
> > http://evolt.org/help_support_evolt/
> >
> > For unsubscribe and other options, including the Tip Harvester
> > and archives of thelist go to: http://lists.evolt.org
> > Workers of the Web, evolt !
> >
> >
> >
>


More information about the thelist mailing list