2010-05-21 85 views
5

我知道這是一個模糊的開放式問題。我希望得到一些大方向。在C#中讀寫cXML文檔的最佳方式是什麼?

我需要將cXML punchout添加到ASP.NET C#站點/應用程序。這取代了我多年前在ColdFusion中寫的東西。

我是一個經驗豐富的C#開發人員,但我沒有用XML做很多事情。在.NET中處理XML似乎有很多不同的選項。

以下是開放式問題:假設我有某種形式的XML文檔,例如文件或字符串,將其讀入我的代碼的最佳方法是什麼?我想獲取數據,然後查詢數據庫等。cXML文檔大小和我們的流量很容易就足夠小,以便將cXML文檔加載到內存中不成問題。

我應該:

1)手動生成根據DTD類和使用XML序列化?

2)使用工具來生成類。有從Ariba.com下載的示例cXML文件。 我試過xsd.exe生成一個xsd然後xsd.exe/c來生成類。當我嘗試反序列化時,我得到了錯誤,因爲似乎圍繞某些元素是單值還是數組似乎存在「混淆」。

我嘗試了CodeXS的在線工具,但是如果我嘗試反序列化示例文檔,它會在日誌和錯誤中給出錯誤。

2)創建一個數據集和ReadXml()?

3)創建一個類型化的數據集和ReadXml()?

4)使用Linq到XML。我經常使用Linq來創建對象,所以我對Linq一般很熟悉,但是我很難在這種情況下看到它給我什麼。

5)其他一些手段。

我想我需要提高對XML的理解,但即使如此......我是否錯過了這樣做的一些顯而易見的方式?在舊的ColdFusion站點中,我找到了一個基本上忽略了任何模式的免費組件(「標籤」),並將XML讀取到一個「結構」中,該結構基本上是一系列嵌套的散列表,然後便於代碼讀取。這可能很sl but,但它工作。

我還需要從我的C#對象中生成XML文件。也許Linq to XML對此會有好處。我可以從一個默認的「模板」文檔開始,並在保存之前對其進行處理。

感謝任何指針...

+0

不是一個騙子persay,但看看這裏:http://stackoverflow.com/questions/444116/what-are-the-best-functions-practices-and-or-techniques-to-read-write- xml-with – 2010-05-21 17:55:59

回答

1

如果你需要生成一個精確的任意格式的XML,你應該使用LINQ到XML手動生成。

+0

謝謝。 Linq to XML絕對是最簡單的方法。 – tetranz 2010-06-01 15:07:20

+0

是的;它通常是。 :) – SLaks 2010-06-01 15:21:49

相關問題