2016-04-14 14 views
2

XElementとして次のように作成するにはどうすればよいですか? " ':' 文字、進値0x3A、名前に含めることはできません。"名前空間を使用してxml属性をプログラムで作成する

<data name="MyKey" xml:space="preserve"> 
    <value>Date of birth</value> 
    <comment>Some comment</comment> 
</data> 

それは

がスローされます

var data = new XElement("data"); 

data.Add(new XAttribute("name", translation.Key)); 
data.Add(new XAttribute("xml:space", "preserve")); // <-- here is the error 

data.Add(new XElement("value") { Value = "Date of birth" }); 
data.Add(new XElement("comment") { Value = "Some comment" }); 

このResX -fileの一部であるように、多くのそのような<data></data> -elementsが存在するであろう。別

答えて

3

便宜上XName +(XNamespace, string)演算子を使用してローカル名から名前空間、:あなたは、単一のあなたの要素の作成の全体を書き込むことができ

data.Add(new XAttribute(XNamespace.Xml + "space", "preserve")); 

ノートではなく、より簡単に行く:

var data = new XElement("data", 
    new XAttribute("name", "MyKey"), 
    new XAttribute(XNamespace.Xml + "space", "preserve"), 
    new XElement("value", "Date of birth"), 
    new XElement("comment", "Some comment") 
); 
+0

ああ、私は...簡単でした。 「単一作成」ヒントにも感謝します。 – KingKerosin

+0

http://stackoverflow.com/a/4986019/1660178 –

関連する問題