2012-01-04 1 views
1

Я заметил, что ie XML-парсер ведет себя иначе, чем другие браузеры. Например, пробелы в документе xml не могут стоять как текстовые файлы сами по себе и удаляются. К сожалению, у меня могут быть нулевые данные, которые генерируются в XML-файле. Те места, которые я вложил, не позволяют данным стать нулевыми в других браузерах. Есть ли способ сохранить эти пространства, т. Е. При использовании своего браузера? Я не хочу изменять сам файл xml. Благодаря!IE xml parser занимает пробелы

ответ

1

Поведение IE верное, если элементы не имеют атрибута xml:space="preserve". Вы можете просто установить этот атрибут (на верхний элемент (ы), где имеет место пробел) в вашем документе.

Дополнительную информацию см. В section 2.10 of the XML standard.

+0

Это, кажется, не держать (IE11) как XML: пространство = «сохранить» атрибут в моем SVG tspan элементе с множественными пространствами не работает (или IE11 сломано, как он вычисляет BBox() из SVG. – Minok

1

по MSDN http://msdn.microsoft.com/en-us/library/ms256097.aspx

По умолчанию, Microsoft Core XML Services (MSXML) не чтит XML: атрибут пространства. Если приложение должно соблюдать атрибут xml: space, свойство preserveWhiteSpace объекта DOMDocument должно быть установлено до True перед разбором.

xmldoc= new ActiveXObject("Msxml2.DOMDocument.5.0"); 
xmldoc.preserveWhiteSpace = true; 
xmldoc.load(url);