2011-02-04 31 views
1

我有幾個XML文件,我將在我的C#代碼中使用。使用XML與XPath與XML作爲類的問題

到目前爲止,我一直在使用XPATH用於訪問XML節點/屬性

的問題是,我會得到什麼好處,如果我將XML轉換爲類文件(XSD.EXE)和可維護性方面使用它,代碼可讀性。

在這我知道,如果我添加或刪除一些節點,需要改變

在我的情況下,DLL進入GAC代碼的情況下。

我只是試圖讓你的看法

乾杯, KARTHIK

回答

1

轉換您的XML的XSD,然後到C#類中,你可以抓住另一個文件的易用性之美。您的代碼會是這樣的:

XmlSerializer ser = new XmlSerializer(typeof(MyClass)); 
FileStream fstm = new FileStream(@"C:\mysample.xml", FileMode.Open, FileAccess.Read); 

MyClass result = ser.Deserialize(fstm) as MyClass; 

if(result != null) 
{ 
    // do whatever you want with your new class instance! 
} 

有了這幾行,你現在有一個代表你的XML包含正是一個對象,你可以作爲對象實例屬性訪問它的屬性 - 不是做大量的容易得多在我看來,複雜的XPath查詢到您的XML中。

而且,由於你現在有一個XSD的事實,你也可以很容易地驗證傳入的XML文件,以確保他們實際上符合定義的合同 - 這將導致更少的恆定誤差,檢查你的代碼(你不必在每個XPath之後檢查是否有任何節點(s)實際上匹配該表達式等)。

+0

感謝您的評論。在XML作爲類的情況下,我該如何驗證xml?用異常類型throwm? – KK99 2011-02-04 06:37:32