[英]XDocument load multiple XML
我有一个ASP.Net Webform应用程序。
我在页面中有一个fileupload允许多个文件。
在foreach循环中,我尝试读取用户上载到该文件夹的所有XML。
如果我阅读文档,则会出现问题。 我只会在选择中得到第一个XML。 我在foreach中简单地使用XDocument.load(filename)
。 我怎么了
我在按钮单击事件中触发该循环
protected void btnSaveDatabase_Click(object sender, EventArgs e)
{ //hiddenfield in page have name of xml in folder
var filesUploaded = hfXMLuploaded.Value.ToString().Split('-');
try
{
foreach (var file in filesUploaded)
{
string filename = Server.MapPath("~/SFA_XML_Upload/" + file);
var doc = XDocument.Load(filename);
Response.Write(doc.ToString()); // for testing
//SaveDataBaseMyTable(ReadMyTable(doc, filename));
}
我的阅读方法:
protected List<SFA_ORDCLI> ReadOrdcli(XDocument doc, string filename)
{
var ordcli = doc.Descendants("table")
.Where(i => (string)i.Attribute("name") == "ordcli")
.Descendants("row")
.Select(e => e.Elements());
List<SFA_ORDCLI> sfaOrdcliList = new List<SFA_ORDCLI>();
foreach (var row in ordcli)
{
SFA_ORDCLI sfaOrdcli = new SFA_ORDCLI();
sfaOrdcli.NomeFileXML = Path.GetFileNameWithoutExtension(filename);
foreach (var field in row)
{
var name = (string)field.Attribute("name");
switch (name)
{
case "RolCodEst"://key
sfaOrdcli.RolCodEst = (string)field;
break;
...other fields
}
}
if (sfaOrdcli != null) sfaOrdcliList.Add(sfaOrdcli);
}
return sfaOrdcliList;
}
在调试中,我看到Load方法收到文件名“ name.xml”,但响应打印两次,第一次读取xml。
问题出在SaveAs方法上:
我做了fileUpload.Saveas而不是file.SaveAs(folderPath + Path.GetFileName(file.FileName)); 文件是HttpPostedFile
抱歉,再见,大家
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.