This is actually an explanation of Hemlock’s answer. I put it here, and not commenting on his answer, because I do not have a place to attract ASCII art in the comments.
Let's say we have the following XML:
<a><b></b><c></c></a>
This creates the following DOM:
<a>--. | <b> | <c>
which is usually what you expect.
Let's say we now have the following XML:
<a> <b></b> <c></c> </a>
You would think that this creates the same DOM. But, according to the standard, you are mistaken. Instead, the standard requires it to generate the following DOM:
<a>--. | "\n " | <b> | "\n " | <c> | "\n"
Yes, the spec says that all of these spaces should be written to the DOM. Almost all XML implementations there do this (not only in browsers). The only exception is IE (and the extension of the XML engine in JScript), because Microsoft did not really care about breaking the standards.
Personally, it is useless 99.999% of the time. The only time this would be useful is if you are trying to implement an XML editor. But it’s in the standards, so the browser needs to implement it if they want to meet the standards.
source share