2008-11-20 2 views
3

Я создал следующий простой XML (C последовательность символов используется) «<A>\n</A>» Когда MSXML (v4 и v6) сериализовать DOM документа с помощью IXMLDOMDocument2.xml он изменяет строку в формат дос и возвращает: «<A>\r\n</A>».MSXML и символ новой строки нормализации (?) Из document.xml собственности

Когда я использую DOM для извлечения только узла строки внутри элемента <A>, я получаю правильный одиночный символ ("\n") string.

Конечно у меня есть preserveWhiteSpace набор для VARIANT_TRUE

XML.Net и Xerces парсеры работает отлично, и не изменять сохраненную строку при сериализации документа XML.

Это ошибка в msxml? Есть идеи?

ТНХ Иржи

ответ

0

Microsoft изменила способ, что новая строка сериализации обрабатывается в MSXML 4 года, чтобы соответствовать w3wc стандартам (см http://support.microsoft.com/kb/261293)

Я понятия не имею, почему то же самое не было сделано для для реализация xml в .Net, но то же самое - сделано для веб-служб в .Net 2.0.

Когда я имел эту проблему в прошлом, я пришел к выводу, что вы либо должны учитывать тот факт, что символы перевода строки могут быть сериализациями непредсказуемо (например, путем замены \r\n с \n), или вам необходимо базировать-64 закодировать текст (или эквивалент)