0

我需要将数据从 list<> 添加到 xml 文件。我正在使用 XDocument 并创建元素以在 xml 中创建和存储数据。现在我有多个,我正在尝试使用 foreach 循环来存储人员数据 STAFFID,但它给了我错误。

public void generateXMLFile(List<UWL> myList )
{          
        XDocument objXDoc = new XDocument(
        new XElement("Institution",
         new XElement("RECID", myList[0].recid),
         new XElement("UKPRN", myList[0].UKPRN),
         new XElement("Person",

             foreach(var m in myList)
             {
                new XElement("STAFFID", m.STAFFID)
             } 
          )
         )
        );

        objXDoc.Declaration = new XDeclaration("1.0", "utf-8", "true");
        //
        objXDoc.Save(@"C:\Test\generated.xml");

        //Completed.......//
        MessageBox.Show("Process Completed......");
}
4

1 回答 1

1

您需要为Person元素提供内容。Foreach 循环不返回任何内容。因此,有效代码将是:

XDocument objXDoc = new XDocument(
  new XElement("Institution",
   new XElement("RECID", myList[0].recid),
   new XElement("UKPRN", myList[0].UKPRN),
   new XElement("Person",
       myList.Select(m => new XElement("STAFFID", m.STAFFID))
  )
 )
);

这将创建STAFFID元素集合并将此集合设置为Person元素的内容。

于 2013-10-04T10:39:13.183 回答