通过ForEach将IList转换为XML
我试图找到一个很好的例子,说明如何使用ForEach获取列表并将其转换为XML。我想做ForEach的原因是,我可以尝试/抓住每一项,并确保在失败之前处理所有道路。对于文件系统上的解密excel文件来说,这是真的,但是如果我可以通过列表来完成,我想我可以转换它。如果它确实失败了,现在它是一个ForEach,那么我现在就能够创建XML文档,不管发生了什么,也可以记录失败的列和行,即失败的人的名字。然后,我可以检查实际的excel文件并修复问题,然后重新上传该记录 任何帮助都将不胜感激。最终,我们将通过一个存储过程将这个XML文档推送到SQL server,以执行sp_XML解析,将其插入数据库 下面是我目前的做法,但是如果有一件事情弄糟了,整个文件就无法处理等等通过ForEach将IList转换为XML,xml,linq,foreach,Xml,Linq,Foreach,我试图找到一个很好的例子,说明如何使用ForEach获取列表并将其转换为XML。我想做ForEach的原因是,我可以尝试/抓住每一项,并确保在失败之前处理所有道路。对于文件系统上的解密excel文件来说,这是真的,但是如果我可以通过列表来完成,我想我可以转换它。如果它确实失败了,现在它是一个ForEach,那么我现在就能够创建XML文档,不管发生了什么,也可以记录失败的列和行,即失败的人的名字。然后,我可以检查实际的excel文件并修复问题,然后重新上传该记录 任何帮助都将不胜感激。最终,我们将
var xmlDoc = new XDocument(
new XDeclaration("1.0", "iso-8859-1", "yes"),
new XElement("Package",
from str in TheList
let fields = str.Split('\t')
select new XElement("Record",
new XElement("FileId", FileData.FileId),
new XElement("LineId", (lineId++).ToString())
)
)
);
return xmlDoc;
这是我一直在寻找的答案。希望它能帮助别人
http://forums.asp.net/p/2024939/5830279.aspx?p=True&t=635545389391660247
using System;
使用System.Collections.Generic;
使用System.Xml.Linq
命名空间MyTestApplication.UI.TestXMLForEach
{
}
public partial class TestXMLForEach : System.Web.UI.Page
{
TestRepo repo = new TestRepo();
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Start @" + DateTime.Now.ToString());
Response.Write("<br/>"); Response.Write("<br/>");
MakeXML();
Response.Write("<br/>"); Response.Write("<br/>");
Response.Write("End @" + DateTime.Now.ToString());
}
private IList<TestXMLDTO> GetXMLInfo()
{
IList<TestXMLDTO> theList = new List<TestXMLDTO>();
for(int i = 1; i <= 100000; i++)
{
theList.Add(new TestXMLDTO
{
Id = i,
FirstName = string.Format("FirstName_{0}",i.ToString()),
LastName = string.Format("LastName_{0}", i.ToString()),
Department = string.Format("Department_{0}", i.ToString()),
Salary = new decimal(27000 + i)
});
System.Diagnostics.Debug.WriteLine(i.ToString());
}
return theList;
}
private void MakeXML()
{
IList<TestXMLDTO> theList = GetXMLInfo();
XDocument xmlDoc = new XDocument(new XDeclaration("1.0", "iso-8859-1", "yes"));
XElement package = new XElement("Package");
foreach (var item in theList)
{
XElement record = new XElement("Record");
XElement id = new XElement("Id", item.Id);
record.Add(id);
XElement firstName = new XElement("FirstName", item.FirstName);
record.Add(firstName);
XElement lastName = new XElement("LastName", item.LastName);
record.Add(lastName);
XElement department = new XElement("Department", item.Department);
record.Add(department);
XElement salary = new XElement("Salary", item.Salary);
record.Add(salary);
package.Add(record);
}
xmlDoc.Add(package);
xmlDoc.Save(@"C:\XmlDocumentViaForEachAndListCSharp.xml");
}
}
public class TestXMLDTO
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Department { get; set; }
public decimal Salary { get; set; }
public TestXMLDTO()
{
Salary = new decimal(27000);
}
}