我有一个XML文件,我想从中检索数据,所以我可以将这些数据存储在我的数据库中。我搜索了,我发现这个post。如何从XML文件检索数据?
我不知道下面的方法:
创建一个XML模式,所以你可以反序列化这个XML转换为.NET对象 - 效果最好,如果你有一大堆这些文件的导入。
所以:
- 我想看到一些文章或如何做到这一点的例子。
- 如何检查来自XML文件的数据?
我有一个XML文件,我想从中检索数据,所以我可以将这些数据存储在我的数据库中。我搜索了,我发现这个post。如何从XML文件检索数据?
我不知道下面的方法:
创建一个XML模式,所以你可以反序列化这个XML转换为.NET对象 - 效果最好,如果你有一大堆这些文件的导入。
所以:
这意味着您可以编写一个反映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文件服从定义的规则(它具有正确的节点名称,所需的属性...)。
您可以使用Visual Studio创建模式。只需用VS打开XML文件。然后选择XML-> Create schema菜单。
或者你可以使用Xsd.exe tool:
and here you ca n找到如何使用xsd验证xml。
这是非常感谢很多,请多一个问题,哪种方法是最好的?这种方法或'LINQ to XML'.如果我想做出相反的动作,我的意思是将数据从数据库转换为XML文件。这种方式很方便。 – 2011-06-12 12:12:29
@just_name,这取决于很多因素。没有最好的方法。两者都是有效的,取决于你想要做什么。例如,如果你有非常大的数据不能放入内存,你应该使用一些Stream API来读/写,比如XmlReader/XmlWriter,而不是序列化/反序列化对象。 – 2011-06-12 12:16:19
非常感谢.... – 2011-06-12 12:18:56