Как заставить XMLDocument не помещать пробелы в самозакрывающиеся теги? - PullRequest
6 голосов
/ 03 февраля 2011

У меня есть XML, хорошо отформатированный без пробелов. Должно быть так.

Когда я загружаю его в XMLDocument для подписи, самозакрывающиеся теги получают дополнительный пробел и

    <cEAN/>

становится:

     <cEAN />

Как только этот документ должен быть подписан, удалить пробел невозможно.

Свойство PreserveWhiteSpace не имеет никакого значения для результата.

Как я могу изменить это поведение?

Ответы [ 3 ]

3 голосов
/ 03 февраля 2011

В XmlDocument нет пробела перед закрывающим знаком "/". XmlDocument - это структура данных, состоящая из узлов. Это двоичный файл. Это не текст.

Любое дополнительное пространство, которое вы видите, существует только при сериализации документа в виде текста.

У вас действительно проблемы с подписью, или вы думаете, что у будет такая проблема?

0 голосов
/ 13 мая 2013

Попробуйте это:

XMLDocument doc;

...

string XMLstring = doc.OuterXml.Replace ("/>", "/>");

0 голосов
/ 03 февраля 2011

У меня была эта проблема раньше. XML подписан базовым хешем, поэтому он не может измениться при сериализации. Я решил это, написав сериализатор, чтобы быть уверенным, что он выведет правильный XML.

Основной рецепт - чтение XML с помощью XMLReader и запись каждого куска по мере поступления.

...