我需要一些帮助来添加一个元素,现在我正在这样做:
XDocument xDoc = XDocument.Load(testFile);
xDoc.Descendants("SQUIBLIST")
.FirstOrDefault()
.Add(new XElement("Sensor",
new XAttribute("ID", id + 1),
new XAttribute("Name", "Squib" + (id + 1).ToString()),
new XAttribute("Used", "True")));
xDoc.Save(testFile);
我得到(例如):
<Sensor ID="26" Name="Squib26" Used="True" />
我想要的是:
<Sensor ID="26" Name="Squib26" Used="True"></Sensor>
我找不到方法。 请给我一个线索。谢谢!
最佳答案
您可以包含一个空字符串以强制它添加一个空文本节点:
new XElement("Sensor",
new XAttribute("ID", id + 1),
new XAttribute("Name", "Squib" + (id + 1).ToString()),
new XAttribute("Used", "True"),
"")
但是,您应该考虑为什么您真的需要它。通常读取 XML 的应用程序根本不应该关心差异。
另请注意,通过调用 FirstOrDefault().Add(...)
如果没有任何 SQUIBLIST<,您将失败并返回
元素。 至少使用 NullReferenceException
/First()
会更清楚,这样如果没有这样的元素,that 就会失败,而不是返回 空
。
关于c# - xml c# 使用 Linq 添加元素到 Xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732755/