gpt4 book ai didi

c# - 以编程方式创建带有命名空间的 xml 属性

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:55 25 4
gpt4 key购买 nike

如何将以下内容创建为 XElement

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

它抛出

"The ':' character, hexadecimal value 0x3A, cannot be included in a name."

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> -元素。

最佳答案

为方便起见,使用 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")
);

关于c# - 以编程方式创建带有命名空间的 xml 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com