從XmlDocument或String到DataGrid中讀取Xml的最佳方式是什麼?將Xml讀入C#中的數據網格#
xml是否必須採用特定格式?
我必須使用A DataSet作爲中介嗎?
我正在研究一個客戶端,它使用由我的一位同事開發的服務器發送的Xml,我可以讓他更改Xml的格式以匹配DataGrid所需的格式。
從XmlDocument或String到DataGrid中讀取Xml的最佳方式是什麼?將Xml讀入C#中的數據網格#
xml是否必須採用特定格式?
我必須使用A DataSet作爲中介嗎?
我正在研究一個客戶端,它使用由我的一位同事開發的服務器發送的Xml,我可以讓他更改Xml的格式以匹配DataGrid所需的格式。
我們有一個部分答案來獲取數據到數據集中,但是它將它作爲一組關聯鏈接表讀取。
DataSet ds = new DataSet();
XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null);
ds.ReadXml(xmlreader);
這取決於您在哪個版本的.NET上運行。如果你可以使用Linq2Xml,那很簡單。只需創建一個XDocument並選擇子節點作爲匿名類型的列表。
如果你不能使用Linq2Xml,那麼你有其他幾個選擇。使用DataSet是一個,這可以很好地工作,但它取決於你正在接受的XML。另一種選擇是創建一個類,該類描述將從xml中讀取的實體,並手動通過xml節點。第三種選擇是使用Xml序列化並將xml反序列化爲對象列表。只要您爲其設置了類,就可以很好地工作。
最簡單的選擇將是創建一個XDocument或創建一個DataSet,如你所建議的。
顯然你的XML必須有效:)
之後,定義數據集,定義一個數據網格。使用數據集上的readXML方法來用XML填充數據集,使用dataBind完成並且您可以輕鬆完成。
DataSet myDataSet = new DataSet();
myDataSet .ReadXml(myXMLString);
myDataGrid.DataSource = myDataSet ;
myDataGrid.DataBind();
您可以簡單地使用XmlDatasource對象作爲網格的數據源。這允許您設置文件和XPath,以便選擇數據源的XML。如果你願意,你可以使用<%#XPath =「blah」%>函數來明確地寫出你的數據。
DataSet.ReadXml需要一個文件名作爲參數不是XML字符串... – 2009-03-02 11:39:45
是否有ParseXml版本? – Will 2009-03-02 11:44:00