2010-11-22 2 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" ?> 

Спасибо заранее, Виджай.

+0

Вы можете показать XML, особенно вокруг строки 44? – Cheeso

+0

DBN> это содержимое в строке 44 –

+1

в именах тегов XML должно содержать только символы ASCII. –

ответ

3

Это FULLWIDTH LATIN CAPITAL LETTER G, а не обычная буква.

Замените его нормальным G.

+0

Этот XML-файл предоставляется конечным пользователем. мы не должны редактировать. Можем ли мы прочитать это, используя любые другие схемы кодирования ...? –

+2

@bjoy: Вы не можете. Это незаконный XML. Так же, как вы не можете разобрать '<>', вы также не можете разобрать '<G>'. – SLaks

+0

@SLaks, спасибо, чувак. но я должен прочитать этот xml любой ценой ... –

2

0xFF27 - полная латинская буква «G», которая не совпадает с латинской буквой «G». Вы должны использовать латинские буквы (в диапазоне ASCII) вместо букв полной ширины (в диапазоне FF01-FF5E). Если XML не слишком большой, просто используйте английскую клавиатуру и замените все буквы один за другим.