2010-10-15 3 views
3

Я обрабатываю xml, который содержит вкладки ("\ t") и разрывы строк ("\ n") в его значениях атрибутов. Когда я разбираю его с помощью XDocument.Parse(), вкладки и разрывы строк преобразуются в пробелы, даже с параметром LoadOptions.PreserveWhitespace.Как сохранить пробелы в значениях атрибутов при использовании XDocument?

Как я могу получить XDocument с исходными значениями атрибутов?

ответ

0

я не нашел реальное решение, так что я в конечном итоге с быстрой & грязной:

xml = xml.Replace("\t", "	").Replace("\r", "
"); 

лучше, чем ничего ...

2

Вы можете использовать простой XmlTextReader для разбора XML- строка. Это позволит сохранить все пробелы в значениях атрибутов:

string textToParse = "<e a=\"x\ty\rz\n\" />" ; 
using (var sr = new StringReader(textToParse)) { 
    using (var xr = new XmlTextReader(sr)) { 
     var xd = XDocument.Load(xr); 
     System.Console.WriteLine(xd.ToString()); 
    } 
} 

выведет

<e a="x&#x9;y&#xD;z&#xA;" /> 
Смежные вопросы