2010-05-17 26 views
1

Hmmmm ...轉換一個C#DataTable實例,以XML包含HTML或二進制數據

雖然它在大多數情況下,一列中有HTML數據。 看來,這樣做......

StringBuilder xmltarget = new StringBuilder(); 
    XmlWriter xmlWriter = XmlWriter.Create(xmltarget); 
    tableData.WriteXml(xmlWriter); 

...不查明這個網站或二進制數據存在,因爲它應該在CDATA標籤包裝數據...

有什麼我需要確保進行相關檢查並生成工作的xml字符串?

+0

在可能的情況下,我想避免做一些不靈活的事情。 我正在使用此與n ashx處理程序一起在2個數據庫中流/同步更改的記錄。 這意味着我需要一些可以在任何DataTable上使用的東西。 另一端是好的,我沒有任何問題重建dataTable和保存數據。 – War 2010-05-17 10:39:05

回答

2

數據表,我認爲其中的html只是一個字符串?如果是這樣,那麼你將不得不自己用CData標籤包裝它。我不認爲.Net中有任何魔術會爲你做到這一點。

我很樂意被證明是錯誤的。

+0

你好我一直在想。 恥辱...... – War 2010-05-17 10:32:39

+0

我最終放棄了尋找,我在網上發佈了這個問題,幾乎每個人都不知道如何使用.Net類來完成這個任務,我想這真的不能自動完成。然而,我確實做了一次重構,解決方案大約有30行代碼用於服務器和客戶端代碼。 (我將生成的xml流式傳輸到數據庫中的服務器)。 – War 2010-05-17 21:16:50

0

是否在數據集中鍵入了列?

+0

是的.... 它是一個使用SqlCommand對象直接從sql server中直接導入的新鮮拉。 – War 2010-05-17 10:31:54

0

調查CreateCDataSection函數,它是System.Xml.XmlDocument的成員。這非常簡單。

在寫出之前,您可能必須將數據錶轉換爲xml文檔對象。

+0

多數民衆贊成的問題雖然...如果數據表包含HTML數據/二進制數據(更多問題與HTML雖然)調用dataTable.WriteXml(目的地)失敗,所以我擁有的是一個數據表,除非我決定打開打開讀我的命令。 – War 2010-05-17 10:34:38

+0

我目前得到這個錯誤,如果HTML包含句號「。」 .... '。',十六進制值0x00,是一個無效的字符。 – War 2010-05-17 10:35:51

相關問題