如何创建以下XElement
?
<data name="MyKey" xml:space="preserve">
<value>Date of birth</value>
<comment>Some comment</comment>
</data>
它抛出
&#39;&#39;&#39;&#39;&#39;字符,十六进制值0x3A,不能包含在名称中。&#34;
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
- 文件的一部分,因此会有许多此类<data></data>
- 元素。
答案 0 :(得分: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")
);