INFO: XML DOM Methods Use Linefeed Only Without a Carriage Return at the End of a Line (261293)



The information in this article applies to:

  • Microsoft XML 2.5
  • Microsoft XML 2.6
  • Microsoft XML 3.0
  • Microsoft XML 4.0

This article was previously published under Q261293

SUMMARY

Versions of MSXML prior to 2.5 used both carriage return and linefeed (CRLF) characters to indicate the end of a line of text. However, starting with MSXML version 2.5, this behavior is different. Methods of the XML Document Object Model (DOM) now return text by using only the linefeed character. This change was made to comply with the World Wide Web (W3C) specification for how XML output should be generated.

MORE INFORMATION

To demonstrate this behavior, insert the following script into a new text file, save the file as XMLCRLF.js, and then double-click on the file. If the computer on which the file is being run has MSXML 2.5 or greater installed, the output text includes only a linefeed (ASCII 10) character. On computers that are using prior versions of MSXML, the output text includes a carriage return and a linefeed.
function pstring(s)
{
   var len = s.length;
   out = "";
   for (i = 0; i < len; i++)
	out += s.charCodeAt(i) + " ";
   WScript.echo("Text value of node: "+s)
   WScript.echo("ASCII character values of node: "+out);
}

var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.preserveWhiteSpace = true;
doc.loadXML(str);

var x = doc.documentElement.firstChild.nodeValue; // normalizes.
pstring(x);
				

Modification Type:MajorLast Reviewed:9/30/2003
Keywords:kbinfo KB261293