Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Преобразование XML


Автор: _Evrey_ 22.5.2008, 14:49
Добрый день.
При формировании подписи в xml столкнулся с проблемой преобразование одного вида xml строк в другой вид.
В частности из строки вида
Код

<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>

в троку вида
Код

<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>

Пытался создать новую строку
Код

temp_doc.WriteStartElement("ds:CanonicalizationMethod");
temp_doc.WriteAttributeString("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315");
temp_doc.WriteString("");
temp_doc.WriteEndElement();

формируется строка
Код

<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

менял WriteAttributeString на WriteElementString, на выходе получается вообще что-то непонятное...
Что делать уже не знаю  smile 
Заранее спасибо... 

Автор: mihryak 22.5.2008, 14:57
Код
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></ds:CanonicalizationMethod>

и
Код
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

равнозначны

Автор: _Evrey_ 22.5.2008, 15:09
Они равнозначны для xml, но я после этого их преобразую в байты и там они различаются...
Это мне нужно для постановки подписи на XML файл...

Автор: ptr 23.5.2008, 16:32
Цитата(_Evrey_ @  22.5.2008,  17:49 Найти цитируемый пост)
Что делать уже не знаю  

Документацию лучше читать smile Вместо WriteEndElement используй WriteFullEndElement:
Код

temp_doc.WriteStartElement("ds:CanonicalizationMethod");
temp_doc.WriteAttributeString("Algorithm", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315");
temp_doc.WriteFullEndElement();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)