2015-12-22 2 views
0
<Messages xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
     <d3p1:string>sample string 1</d3p1:string> 
     <d3p1:string>sample string 2</d3p1:string> 
    </Messages> 

С XmlWriter я woul dlike написать эту XMLC# С XmlWriter пишут "d3p1: строка" элемент

Код:

writer.WriteStartElement("Messages"); 
writer.WriteAttributeString("xmlns", "d3p1", null, "http://schemas.microsoft.com/2003/10/Serialization/Arrays"); 

writer.WriteElementString("d3p1:string", "my message"); 

writer.WriteEndElement(); 

Проблема заключается в том, что

writer.WriteElementString("d3p1:string", "my message"); 

не является действительный.

Символ ':', шестнадцатеричное значение 0x3A, не может быть включен в имя .

Как написать d3p1:string xml tag?

+0

XMLNS не может быть написана с WriteAttributeString вам придется добавить, что с помощью опции пространств имен. Это, скорее всего, причина, по которой он не может написать вам элемент. – woutervs

+0

xmlns работает правильно. Проблема связана с d3p1: string. Символ ':', шестнадцатеричное значение 0x3A, не может быть включен в имя. – senzacionale

ответ

3

использовать также пространство имен и префикс в WriteElementString:

const string ns = "http://schemas.microsoft.com/2003/10/Serialization/Arrays"; 
const string prefix = "d3p1"; 
using(var writer = XmlWriter.Create("file.xml")) 
{ 
    writer.WriteStartElement("Messages"); 
    writer.WriteAttributeString("xmlns", prefix, null, ns); 
    writer.WriteElementString(prefix, "string", ns, "my message"); 
    writer.WriteEndElement(); 
} 
+1

это должно работать действительно. – woutervs

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