我有一個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