Altova Mailing List Archives>Archive Index >comp.text.xml Archive Home >Recent entries >Thread Prev - How IE's and Firefox's XML DOM parsers deal with whitespace text nodes [Thread Next] Re: How IE's and Firefox's XML DOM parsers deal with whitespace text nodesTo: NULL Date: 11/2/2007 4:39:00 PM
Water Cooler v2 wrote:
> The relevant text I do not understand is:
>
> "Internet Explorer, when using node.childNodes[], will NOT contain
> these white-space nodes. In Mozilla, those nodes will be in the
> array."
>
> and
>
> "Internet Explorer will skip the white-space text nodes that are
> generated between nodes (e.g. new line characters), while Mozilla will
> not. So, in the example above, Mozilla browsers will alert 9 child
> nodes, while Internet Explorer will alert 4."
>
> I checked the said file: http://www.w3schools.com/dom/books.xml
>
> In both, Firefox 2.0 as well as IE 6.0, it had only 4 <book> elements.
The DOM object model knows different kind of nodes, it knows element
nodes but it also knows text nodes. In the example document books.xml
there is white space between the elements as the markup looks like this
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
and not like this
<bookstore><book category="COOKING"><title lang="en">Everyday
Italian</title><author>Giada De
Laurentiis</author><year>2005</year><price>30.00</price></book><book
category="CHILDREN"><title lang="en">Harry Potter</title><author>J K.
Rowling</author><year>2005</year><price>29.99</price></book>
The difference between the DOM implementations is whether such
whitespace is modelled as text nodes or not.
With Mozilla it is, with IE respectively MSXML it depends on the setting
of the property preserveWhiteSpace e.g. this example
var xmlDocument = new ActiveXObject('Msxml2.DOMDocument.3.0');
xmlDocument.async = false;
xmlDocument.preserveWhiteSpace = true;
xmlDocument.load('http://www.w3schools.com/dom/books.xml');
alert(xmlDocument.documentElement.childNodes.length);
xmlDocument.preserveWhiteSpace = false;
xmlDocument.load('http://www.w3schools.com/dom/books.xml');
alert(xmlDocument.documentElement.childNodes.length);
alerts 9 first, then 4.
So with Mozilla and with IE/MSXML with preserveWhiteSpace set to true
the object model contains white space text nodes between the book
element nodes.
--
Martin Honnen
http://JavaScript.FAQTs.com/
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
