Имя не может начаться с '' символа

Я анализирую некоторый XML в C#. Я получаю его от базы данных, и таким образом преобразовывая его в MemoryStream прежде, чем считать его с XmlTextReader. Проблема состоит в том, что я получаю эту ошибку: Name cannot begin with the ' ' character, hexadecimal value 0x20. Line 1, position 3. Следующее является моим XML и моим кодом для чтения его (это выходит из базы данных хорошо, никакого пустого первого символа). Какие-либо предложения?

XML:

<? xml version="1.0" encoding="utf-8" ?>
<form>
   <e order="0" type="custom" name="test">
      <fi type="text" />
      <o />
   </e>
   <e order="1" type="zip" />
   <e order="2" type="state" />
</form>

C#:

byte[] byteArray = new byte[formXml.Length];
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byteArray = encoding.GetBytes(formXml);
MemoryStream xmlStream = new MemoryStream(byteArray);

XmlTextReader xmlReader = new XmlTextReader(xmlStream);
while (xmlReader.Read())
{
    if (xmlReader.HasValue)
    {
        returnString += xmlReader.Depth.ToString();
    }
}

Я думал, что это могло быть кодирование, но я попробовал UTF8 и ASCII и ничего не могу найти.

34
задан Brian Hicks 17 February 2010 в 16:35
поделиться

3 ответа

Да, вы должны удалить пробел между

<?xml version="1.0" encoding="utf-8" ?>
<form>
   <e order="0" type="custom" name="test">
      <fi type="text" />
      <o />
   </e>
   <e order="1" type="zip" />
   <e order="2" type="state" />
</form>

Вот соответствующая спецификация XML.

33
ответ дан 27 November 2019 в 16:55
поделиться

Ваше сообщение об ошибке довольно явное, у вас есть ошибка на posn 3 в строке 1. Попробуйте - без пробела .

6
ответ дан 27 November 2019 в 16:55
поделиться

Удалите первый пробел в документе:

<?xml version="1.0" encoding="utf-8"?>
4
ответ дан 27 November 2019 в 16:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: