我想读取以下文件,并按制表符值读取并保存标签到sql table列。以下是我的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>
答案 0 :(得分:0)
您需要将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#对象保存到数据库