使用c#读取XML文件并将数据保存到SQL表列

时间:2018-10-29 10:21:19

标签: c# xml model-view-controller

我想读取以下文件,并按制表符值读取并保存标签到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>

1 个答案:

答案 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#对象保存到数据库