2011-02-03 2 views
5

У меня XML хорошо отформатирован без пробелов. Это должно быть так.Как заставить XMLDocument не помещать пробелы в самозакрывающиеся теги?

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

<cEAN/> 

становится:

 <cEAN /> 

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

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

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

+3

Мне любопытно. Что потребляет XML, чтобы он не мог справиться с пробелами? – spender

+0

Насколько я понимаю, пространство перед форвард-лэйвом было продиктовано стандартом. –

+0

@ Брэдли: нет. Я не считаю, что стандарт диктует формат сериализации до такой степени. –

ответ

3

Перед закрытием «/» в пространстве XmlDocument нет места. XmlDocument - это структура данных, состоящая из узлов. Он двоичный. Это не текст.

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

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

+0

Вы имеете право на сериализацию. И у меня проблема с Правительственным агентством, которое снимает лишнее пространство, которое нужно удалить. –

+4

Скажите им, чтобы они изучали XML. Напомните им, что это международный стандарт. –

+0

пока я согласен, удачи в OP с этим! – spender

0

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

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

0

Попробуйте следующее:

XMLDocument doc;

...

строка XMLstring = doc.OuterXml.Replace ("/>", "/>");

Смежные вопросы