2015-12-22 55 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我竟被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標籤?

+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