2017-09-25 50 views
0

我試圖將一些XML插入到使用列類型XML的SQL Server數據庫表中。當它包含轉義無效字符時如何將XML插入到SQL Server中

也能正常工作的大部分時間,但一個用戶提交的一些XML與十六進制值3的性格,和SQL Server給了錯誤「十六進制值0x03時,是無效的字符。」

現在我要檢查,並刪除,在做之前插入任何無效的XML字符,並且有各種物品建議如何無效的XML字符可以使用正則表達式或類似的東西來代替。

但是,我的問題是,用戶提交的XML文檔轉義了無效字符,即「」,並且我找到的方法都不會檢測到這一點。這也是爲什麼之前沒有檢測到錯誤的原因:只有當它插入SQL數據庫時纔會發生問題。

有沒有人寫,將檢查所有轉義無效XML字符的功能?我想上面的角色可能被寫爲或者或者很多其他方式,所以很難全部抓住它們。

在此先感謝您提供的任何幫助。

+0

注意,我嘗試談論逃脫的字符失敗上面:我的意思是說:&符號散列x 3; – Pete

回答

0

你可以嘗試導入XML到一個臨時VARCHAR(最大值)的變量或表列,並使用REPLACE來剔除有問題的字符,然後將清洗串到目標它鑄造於XML

相關問題