C# 如何从XML文件检索数据?

C# 如何从XML文件检索数据?,c#,asp.net,xml,linq-to-xml,xml-deserialization,C#,Asp.net,Xml,Linq To Xml,Xml Deserialization,我有一个XML文件,我想从中检索数据,以便将这些数据存储在数据库中。我找过了,找到了这个 我不知道以下是什么意思: 创建一个XML模式,以便您可以将此XML反序列化为.NET对象—如果您有大量这些文件要导入,则效果最佳 因此: 我想看一些文章或例子来说明如何做到这一点 如何检查来自XML文件的数据 这意味着您可以编写一个反映XML文件结构的.NET对象,然后将XML文件反序列化回该对象的实例。例如,如果您具有以下XML: <User> <FirstName>Jo

我有一个XML文件,我想从中检索数据,以便将这些数据存储在数据库中。我找过了,找到了这个

我不知道以下是什么意思:

创建一个XML模式,以便您可以将此XML反序列化为.NET对象—如果您有大量这些文件要导入,则效果最佳

因此:

  • 我想看一些文章或例子来说明如何做到这一点
  • 如何检查来自XML文件的数据

    • 这意味着您可以编写一个反映XML文件结构的.NET对象,然后将XML文件反序列化回该对象的实例。例如,如果您具有以下XML:

      <User>
          <FirstName>John</FirstName>
          <LastName>John</LastName>
      </User>
      
      然后反序列化:

      var serializer = new XmlSerializer(typeof(User));
      using (var reader = XmlReader.Create("test.xml"))
      {
          User user = (User)serializer.Deserialize(reader);
      }
      
      您可以访问.NET对象以控制序列化/反序列化过程


      就XML文件的验证而言,您可以编写一个XSD模式(这是一个XML文件)来表示文件的数据结构,然后进行验证。这将确保您作为输入的XML文件遵守定义的规则(它具有正确的节点名称、必需的属性等)。

      这意味着您可以编写反映XML文件结构的.NET对象,然后将XML文件反序列化回此对象的实例。例如,如果您具有以下XML:

      <User>
          <FirstName>John</FirstName>
          <LastName>John</LastName>
      </User>
      
      然后反序列化:

      var serializer = new XmlSerializer(typeof(User));
      using (var reader = XmlReader.Create("test.xml"))
      {
          User user = (User)serializer.Deserialize(reader);
      }
      
      您可以访问.NET对象以控制序列化/反序列化过程

      就XML文件的验证而言,您可以编写一个XSD模式(这是一个XML文件)来表示文件的数据结构,然后进行验证。这将确保您作为输入的XML文件遵守定义的规则(它具有正确的节点名称、必需的属性等)。

      您想了解“创建XML架构以便将此XML反序列化为.NET对象-如果有大量这些文件要导入,则效果最佳”

      以下链接向您展示了如何实现这一目标:

      您想了解“创建一个XML模式,以便将此XML反序列化为.NET对象-如果有大量文件要导入,效果最好”

      以下链接向您展示了如何实现这一目标:


      您可以使用Visual studio创建架构。只需使用VS打开XML文件,然后选择XML->CreateSchema菜单

      或者您可以使用:

      • 首先使用命令提取shema xsd.exe your.xml
      • 第二代 使用 命令xsd.exe创建您的.xsd/classes

      您可以找到如何使用xsd验证xml。

      您可以使用Visual studio创建模式。只需使用VS打开XML文件,然后选择XML->CreateSchema菜单

      或者您可以使用:

      • 首先使用命令提取shema xsd.exe your.xml
      • 第二代 使用 命令xsd.exe创建您的.xsd/classes

      您可以找到如何使用xsd验证xml。

      这很好,非常感谢,请再问一个问题,哪种方法最好?此方法或
      LINQ to XML
      。如果我想执行相反的操作,我的意思是将数据从数据库转换为XML文件。这种方法是否方便。@只是名称,它取决于许多因素。没有最好的方法。这两种方法都是有效的,具体取决于您尝试执行的操作。例如,如果您有非常大的数据无法放入内存,您应该使用一些流式API进行读/写,例如XmlReader/XmlWriter,而不是序列化/反序列化对象。这非常感谢,请再问一个问题,哪种方法最好?此方法或
      LINQ to XML
      。如果我想执行相反的操作,我的意思是将数据从数据库转换为XML文件。这种方法是否方便。@只是名称,它取决于许多因素。没有最好的方法。这两种方法都是有效的,具体取决于您尝试执行的操作。例如,如果有非常大的数据无法放入内存,那么应该使用一些流式API进行读/写操作,比如XmlReader/XmlWriter,而不是序列化/反序列化对象。