2009-06-04 40 views
1

這是我的場景。 XML存儲在SQL DB中。我需要允許用戶編輯該XML的不同部分(不插入,只是更新),如果更改了某些內容(以便我可以保存最後一個日期文件或編輯節點),然後將更新後的XML保存到數據庫,會得到通知。編輯(通過數據綁定)ASP.NET中的XML

什麼是最好的&在這種情況下最快的方法?我希望能夠使用XmlDataSource的數據綁定表達式。但是,它只支持只讀綁定(看起來)。

是否有任何其他替代解決方案內置到ASP.NET我可以使用,這將允許數據綁定(爲每個控件指定xpath)?還是我需要推出我自己的解決方案?

如果推出我自己的解決方案,最好的方法是什麼?

回答

1

您不必推出自己的解決方案,因爲您可以輕鬆讓.Net框架爲您完成繁重工作。如果數據綁定是您所追求的,那麼您可以使用XSD工具從您的XML模式爲您生成CLR類(如果存在)。

生成的類會是這個樣子:

XSD/C /語言:CS XSDSchemaFile.xsd

一旦你的對象,請像往常一樣在UI到綁定目的。一旦準備好將這些更改傳播給數據庫,就可以將XML序列化爲對象,並將結果推送回數據庫。

var serializer = new XmlSerializer(typeof (MyCustomType)); 

var stream = new MemoryStream(); 
var xw = new XmlTextWriter(stream, encoding); 

serializer.Serialize(xw, instanceOfCustomType); 

String xml = encoding.GetString(stream.ToArray());