2016-04-14 60 views
2

Aşağıdakileri XElement olarak nasıl oluşturabilirim? " ':' Karakteri, onaltılık değer 0x3A, ad içinde yer edilemez."Ad alanı ile xml niteliğini programatik olarak oluşturun

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

O

atar Bu gibi

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" }); 

bir ResX -File parçası, bu tür birçok <data></data> -elemanları olacaktır olduğunu. Ayrı

cevap

3

kolaylık XName +(XNamespace, string) operatörünü kullanarak yerel adından ad,: Tek daki eleman yaratılış tamamını yazabilir

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

Not ziyade daha basit gidin:

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

Oh ... Bu çok kolaydı. "Tek oluşturma" ipucu için de teşekkürler. – KingKerosin

+0

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