使用XElement如何在标签之间添加值?

7

我查看了许多使用XDocumentXElement的XML示例,但它们似乎都有自闭合标签,例如<To Name="John Smith"/>。我需要执行以下操作:

<To Type="C">John Smith</To>

我认为以下代码可以运行,并尝试查看Linq.XML类的对象模型,但稍有不足(请参见下面无法运行的行

new XElement("To", new XAttribute("Type", "C")).SetValue("John Smith")

如果您需要帮助将XML正确地格式化,我们很乐意提供协助。感谢您的支持!


那么问题是如何将 <To Type="C">John Smith</To> 转换为 <To Type="C" Name="John Smith"/> - LukeHennerley
1
将来请告诉我们你尝试的内容有什么问题 - “我只是有点偏差”并不能真正解释出问题所在。 - Jon Skeet
@Jon - 我尝试过第二行,但它没有起作用。new XElement("To", new XAttribute("Type", "C")).SetValue("John Smith")先生,我错在哪里?我说“有点偏差”,下一行的代码也不起作用。结果是StackOverflow问题。请澄清一下。 - atconway
1
“它没起作用”仍然不够详细。这就像去看医生,在只提供你感觉不舒服的信息而没有提供任何症状的情况下,期望得到诊断一样。你是否收到了编译时错误?如果有,是什么错误?还是执行时失败?只是没有得到预期的结果吗?请阅读 http://tinyurl.com/so-list。 - Jon Skeet
2个回答

20

我会使用:

new XElement("To", new XAttribute("Type", "C"), "John Smith");

您提供给XElement构造函数的任何纯文本内容都将以文本节点的形式出现。

当然,您也可以单独调用SetValue,但它并不返回任何东西,因此您需要先将元素的引用存储在变量中。


4
如何?
  new XElement("To", new XAttribute("Type", "C"), "John Smith")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接