如何从XML文件中检索数据?

时间:2011-06-12 11:46:37

标签: c# asp.net xml linq-to-xml xml-deserialization

我有一个XML文件,我想从中检索数据,因此我可以将这些数据存储在我的数据库中。我搜索过,发现了post

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

  

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

所以:

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

3 个答案:

答案 0 :(得分:2)

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

<User>
    <FirstName>John</FirstName>
    <LastName>John</LastName>
</User>

你可以拥有一个User类:

public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

然后反序列化:

var serializer = new XmlSerializer(typeof(User));
using (var reader = XmlReader.Create("test.xml"))
{
    User user = (User)serializer.Deserialize(reader);
}

您可以apply attributes到.NET对象以控制序列化/反序列化过程。

就XML文件的验证而言,您可以编写一个XSD架构(这是一个XML文件)来表示文件的数据结构,然后validate it against this schema。这将确保您作为输入的XML文件服从定义的规则(它具有正确的节点名称,必需属性......)。

答案 1 :(得分:1)

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

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

Instructions

答案 2 :(得分:1)

您可以使用Visual Studio创建架构。只需用VS打开XML文件。然后选择XML-&gt;创建模式菜单。

或者您可以使用Xsd.exe tool

  • 首先使用命令提取shema xsd.exe your.xml
  • 第二次生成 使用生成的模式生成的类 命令 xsd.exe your.xsd / classes

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