c# - 使用 c# 读取 XML 文件并将数据保存到 SQL 表列
问题描述
我想读取以下文件并按选项卡值读取标签并将其保存到 sql 表列。以下是我的 xml 文件。我在 mvc 中这样做。
XMl FILE:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.009.001.01">
<MndtInitnReq>
<GrpHdr>
<MsgId>10005226074</MsgId>
<CreDtTm>2018-10-23T15:20:56</CreDtTm>
<InstgAgt>
<FinInstnId>
<ClrSysMmbId>
<MmbId>ARTD0211860</MmbId>
</ClrSysMmbId>
<Nm>ATEST BANK</Nm>
</FinInstnId>
</InstgAgt>
<InstdAgt>
<FinInstnId>
<ClrSysMmbId>
<MmbId>40123424</MmbId>
</ClrSysMmbId>
<Nm>test t CO-OP. BANK LTD</Nm>
</FinInstnId>
</InstdAgt>
</GrpHdr>
</MndtInitnReq>
</Document>
解决方案
您需要将 XML 反序列化为 c# 类型,然后使用 entityframework 将此对象插入数据库
首先创建一个表示您的 XML 模式的 C# 类(模型)并将其标记为可序列化,您可以通过创建一个新类轻松地做到这一点,例如我们称之为 TestClass 并将您的 XML 文件复制到剪贴板(Ctrl+A、Ctrl+C ) 并在 Visual Studio 中,转到编辑菜单并选择“选择性粘贴”->“将 XML 粘贴为类”。
// open a stream containing the file content (the XML) using stream reader
FileStream ReadFileStream = new FileStream(<YOURFILELOCATION>, FileMode.Open, FileAccess.Read, FileShare.Read);
// Create a new XmlSerializer instance with the type of the test class
XmlSerializer SerializerObj = new XmlSerializer(typeof(TestClass));
// Load the object saved above by using the Deserialize function
TestClass LoadedObj = (TestClass)SerializerObj.Deserialize(ReadFileStream);
然后使用 EntityFramework 可以将此 C# 对象保存到数据库
推荐阅读
- c# - httpwebrequest 201 创建 c# 表单如何从服务器获取创建资源的位置
- java - Eclipse 中的项目级别“Java 编译器”和 Windows 首选项级别“Java”->“编译器”有什么区别?
- asp.net - FileNotFoundException:无法加载文件或程序集“System.Net.Http.WebRequest”
- python - 无法导入 matplotlib.pyplot 'Nonetype' 对象不可迭代
- powershell - 使用 powershell 和任务计划程序 COM-Object 读取 csv 文件以创建从事件 id 触发的任务
- java - Jasper 报告作为 Java 应用程序的一部分
- android - 按日期重复事件的日历不起作用
- java - Zuul 路由优先级高于 Spring Controller
- mysql - 聚合可能不会出现在 WHERE 子句错误中
- sql-server - 为什么以域用户身份执行不起作用?