C# 编写包含未知数量的同名节点的 XML 文件



使用 C#,我正在尝试编写一个 XML 文件,该文件将包含一个未知数字(编译时未知,我可以在搜索 SQLite DB 后找出数量(节点(从 SQLite 数据库读取的数据(将被命名为相同(设置(。设置节点的数量可能达到数千个。

<Set>
<Setting Name="Ted" empID="60000004">Ted</Setting>
<Setting Name="Bill" empID="60000007">Bill</Setting>
<Setting Name="Steve empID="60000010">Steve</Setting>
<Setting Name="Sara" empID="60000013">Sara</Setting>
<Setting Name="Tom" empID="60000016">Tom</Setting>
<Setting Name="Sam" empID="60000019">Sam</Setting>
<Setting Name="Alex" empID="60000022">Alex</Setting>
<Setting Name="Sue" empID="60000025">Sue</Setting>
<Setting Name="Jill" empID="60000028">Jill</Setting>
<Setting Name="Mya" empID="60000031">Mya</Setting>
</Set>

这是我正在使用的代码,但失败了:

XDocument doc = new XDocument(new XElement("Set"));
while (reader.Read())
{
doc.Element("Set").Add(new XElement("Setting", _Name));
doc.Element("Set").Element("Setting").Add(new XAttribute("empID", _ID));
}
doc.Save(_sOutputFolderName + "Employee_Information.xml");

您正在尝试将 XAttribute 添加到每个循环上的同一 XElement。 应该是这样的:

XDocument doc = new XDocument(new XElement("Set"));
for (int i = 0; i < 10; i++)
{
var _Name = "n" + i ;
var _ID = "12" + i;
var setting = new XElement("Setting", _Name );
setting.Add(new XAttribute("empID", _ID));
doc.Element("Set").Add(setting);
}
Console.WriteLine(doc.ToString());

试试这个...

XDocument doc = new XDocument(new XElement("Set"));
while (reader.Read()) {
var setting = new XElement("Setting", "the name"); 
setting.Add(new XAttribute("empID", "the id"));
doc.Root.Add(setting);
}

最新更新