Как мне отредактировать XML в C # без изменения формата / интервала? - PullRequest
3 голосов
/ 12 октября 2009

Мне нужно приложение, которое проходит через XML-файл, изменяет некоторые значения атрибутов и добавляет другие атрибуты. Я знаю, что могу сделать это с XmlDocument и XmlWriter. Однако я не хочу изменять интервал документа. Есть какой-либо способ сделать это? Или мне придется самому разбирать файл?

Ответы [ 2 ]

4 голосов
/ 12 октября 2009

XmlDocument имеет свойство PreserveWhitespace. Если вы установите значение true, незначительные пробелы будут сохранены.

См. MSDN

EDIT

Если я выполняю следующий код, пробел, включая разрывы строк, сохраняется. (Это правда, что пробел вставляется между <b и />)

    XmlDocument doc = new XmlDocument();
    doc.PreserveWhitespace = true;
    doc.LoadXml(
@"<a>
   <b/>
</a>");
    Console.WriteLine(doc.InnerXml);

Вывод:

<a>
   <b />
</a>
0 голосов
/ 12 октября 2009

Незначительные пробелы обычно отбрасываются или переформатируются. Таким образом, если файл XML не использует атрибут xml:space="preserve" на узлах, которые должны сохранять их точные пробелы, изменение пробела в порядке в соответствии со спецификациями XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...