首页 > 解决方案 > 使用 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>

标签: c#xmlmodel-view-controller

解决方案


您需要将 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# 对象保存到数据库


推荐阅读