Мне нужно приложение, которое проходит через XML файл, изменяет некоторые значения атрибутов и добавляет другие атрибуты. Я знаю, что могу сделать это с помощью XmlDocument и XmlWriter. Однако я не хочу менять интервал документа. Есть какой-либо способ сделать это? Или, я должен сам проанализировать файл?
XmlDocument
имеет свойство PreserveWhitespace
. Если вы установите значение true
, будет сохраняться незначительное пробелы.
См. MSDN
ИЗМЕНИТЬ
Если я выполняю следующий код, пробелы, включая разрывы строк, сохраняются. (Это правда, что пространство вставлено между <b
и />
)
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.LoadXml(
@"<a>
<b/>
</a>");
Console.WriteLine(doc.InnerXml);
Вывод:
<a>
<b />
</a>
Незначительные пробелы обычно отбрасываются или переформатируются. Поэтому, если XML файл не использует атрибут xml:space="preserve"
на узлах, которые должны сохранять их точные пробелы, изменение пробела в порядке на спецификации XML.
<something/>
преобразуется в<something />
.