XML header and childNodes

26 July 2007   0 comments   Web development

Powered by Fusion×

I discovered something really odd today that maybe a seasoned AJAX guru already knew as a legendary bug which might even have a name. I was developing a little AJAX method on the server side that returned this:

<?xml version="1.0"?>
<sections>
  <section>
    <number>001</number>
    <title>PLug 1</title>
  </section>
  <section>
    <number>003</number>
    <title>PLug 3 xyz</title>
  </section>
</sections>

Note: The Content-Type used was "text/xml"

I used jQuery to kick off the AJAX call and then I loop over the document element returned with childNodes almost like this:

children = data.childNodes[0].childNodes;
for (var i=0, len=children.length; i<len; i++)
  // bla bla

It was working fine in Firefox and of course not in IE 6.0.

Long story short, the solution was to not attach the first line: <?xml version="1.0"?> because with that line, in IE the object data.childNodes[0].childNodes did not contain any further nodes to loop over. Why??? No idea. So now my server side sends this instead:

<sections>
  <section>
    <number>001</number>
    <title>PLug 1</title>
  </section>
  <section>
    <number>003</number>
    <title>PLug 3 xyz</title>
  </section>
</sections>

To make it work now I just removed that first line. I haven't had to worry about unicode problems yet but I would use this first line to describe the unicode encoding if non-ASCII. Now I can't, which makes me a bit worried that I might run into encoding problems one day.

Comments

Thank you for posting a comment

Your email will never ever be published


Related posts

Previous:
How did Google do that? 14 July 2007
Next:
Interesting lesson learnt on shortcut taking in usability 02 August 2007
Related by keywords:
Lazy loading below the fold 26 October 2013
Autosaving textarea with AJAX 16 May 2005
AJAX accelerated web widgets 23 June 2005
IssueTrackerProduct featured on Ajaxian.com 26 January 2006
IssueTrackerProduct 0.7 released 16 December 2005
Python regular expression tester 19 September 2005
AJAX seach on 404 error pages 01 August 2005
IssueTrackerProduct feature list 02 December 2005
DOM Scripting 05 December 2005