C# 如何从XML文件检索数据?
我有一个XML文件,我想从中检索数据,以便将这些数据存储在数据库中。我找过了,找到了这个 我不知道以下是什么意思: 创建一个XML模式,以便您可以将此XML反序列化为.NET对象—如果您有大量这些文件要导入,则效果最佳 因此: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文件结构的.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,而不是序列化/反序列化对象。