c# - 如何将 IFormfile XML 数据转换为 .Net Core 中的列表
问题描述
我正在尝试将 XML 文件从我的 Angular 应用程序发送到我的 ASP .Net Core 控制器。我希望控制器接收文件,然后将其反序列化为强类型的对象列表。解决这个问题的正确方法是什么?我目前在反序列化文件时收到错误消息,指出“根级别的数据无效。第 1 行,位置 1'。以下是我到目前为止所尝试的。
控制器:
[HttpPost("reconciliation")]
public async Task<IActionResult> SetReconciliation(IFormFile file)
{
List<ReconciliationExportCsv> records = new List<ReconciliationExportCsv>();
XmlSerializer serializer = new XmlSerializer(typeof(List<ReconciliationExportCsv>));
using (var reader = new StreamReader(file.OpenReadStream()))
{
records = (List<ReconciliationExportCsv>)serializer.Deserialize(reader);
}
var submitted = await _service.UploadReconciliationData(records);
return Ok();
}
}
模型:
public class ReconciliationExportCsv
{
public string or1 { get; set; }
public string exitStatus { get; set; }
public string vendorState { get; set; }
}
}
CSV:
解决方案
要将 IFormFile 转换为 XDocument,请使用如下语法:
public async Task<IActionResult> Upload(IFormFile input)
{
using (MemoryStream str = new MemoryStream())
{
await input.CopyToAsync(str);
str.Position = 0;
var xml = XDocument.Load(str);
}
}
然后您可以使用 XDocument 类方法来处理您的 xml
推荐阅读
- r - visNetwork 中的完整画布图
- visual-studio-code - 当我在 VS Code 中编写 sass 文件时,文件路径自动完成不起作用
- java - 如何通过java确定.csv文件是否有标题?
- visual-studio-code - VSCode:用扩展变量值中的下划线替换空格
- excel - VBA将图像捕捉到单元格边框
- xamarin - 从计时器回调更改标签文本
- jsf - 使用 bean 的返回值排序
- flutter - 如何向 IconButtons 或提升的 Buttons 添加启动颜色或波纹效果
- python - 在小数点后打印函数空间填充和格式数字
- sql - 如何在交互式网格上显示所有数据,然后使用 oracle_apex 上的穿梭过滤器减少它?