2010-11-22 34 views
2

我寫了一段代碼來讀取包含日文字符的xml文件。寫入讀取XML文件 代碼是:發生System.Xml.XmlException。名稱不能以'G'字符開頭,十六進制值0xFF27。 44行,位置4

 DataSet xmlData = new DataSet();    
     xmlData.ReadXml("c:\\abc.xml"); 

但是,儘管執行該代碼的異常「System.Xml.XmlException」正在發生,因爲XML文件包含一個英文字母「G」線44

顯示的錯誤消息是:=「名稱不能以'G'字符開頭,十六進制值0xFF27。44行,位置4。

我該如何解決這個問題。 我的xml文件詳細信息包括編碼描述如下。

<?xml version="1.0" encoding="UTF-16" ?> 

在此先感謝, Bijoy。

+0

可以顯示XML,特別是在第44行左右嗎? – Cheeso 2010-11-22 12:23:28

+0

DBN這是第44行的內容 – 2010-11-22 12:30:05

+1

在XML標籤名稱中應該只包含ASCII字符。 – 2010-11-22 12:32:16

回答

3

這是一個FULLWIDTH LATIN CAPITAL LETTER G,而不是一個普通的字母。

將其替換爲正常的G

+0

此xml文件由最終用戶提供。我們不應該編輯。我們可以通過使用任何其他編碼方案來閱讀此內容嗎? – 2010-11-22 12:23:56

+2

@bjoy:你不能。這是非法的XML。就像你不能分析'<>'一樣,你也不能分析'<G>'。 – SLaks 2010-11-22 12:25:19

+0

@SLaks,感謝兄弟。但我必須不惜任何代價讀取這個xml ... – 2010-11-22 12:28:17

2

0xFF27是全角拉丁字母'G',與拉丁字母'G'不一樣。您應該使用拉丁字母(以ASCII範圍)而不是全角字母(範圍FF01-FF5E)。如果XML不是太大,只需使用英文鍵盤並逐個替換所有字母。

相關問題