XML. Недействительно на верхнем уровне документа. Ошибка обработки ресурса - PullRequest
0 голосов
/ 10 ноября 2010

Не могли бы вы указать мне, что не так со следующим XML-файлом?

<?xml version="1.0" encoding="utf-8"?>
<root>
  <align>right</align>
  <columns>3</columns>
  <rows>4</rows>
  <backgroundColor>#333333</backgroundColor>
  <circleButtonColor>#666666</circleButtonColor>
  <currentCircleButtonColor>#000000</currentCircleButtonColor>
  <textColor>#000000</textColor>
  <thumbWidth>100</thumbWidth>
  <thumbHeight>75</thumbHeight>
  <thumbPadding>10</thumbPadding>
  <thumbBorder>3</thumbBorder>
  <thumbBorderColor>#0000F1</thumbBorderColor>
  <assetWidth>600</assetWidth>
  <assetHeight>400</assetHeight>
  <showImageCaption>yes</showImageCaption>
  <showImageShadow>no</showImageShadow>
  <target>_self</target>
</root> 

А вот ошибка

Invalid at the top level of the document. Error processing resource 'http://www.example.com/xml/setup.xml'. Line 20, Positi...

</root>

Я уверен, что могу использовать перерыв,но в случае, если я этого не сделаю, перед загрузкой определенного файла я не получаю ошибок на локальном хосте.

ОБНОВЛЕНИЕ: После проверки Xml (Hex) я заметил, что символ 0x00 (NULL) был волшебным образом добавлен после </root>

. Сказав магически, я имею в виду ...

Файл XML обычно создается на локальном хосте.Символ NULL добавляется пользовательским классом FTP (который используется для загрузки - в двоичном режиме), ИЛИ чем-то еще, что я не могу себе представить ...

Ответы [ 2 ]

1 голос
/ 10 ноября 2010

По крайней мере, я нашел источник проблемы!Ошибка не имеет ничего общего с XML.

Проблема возникла в классе FTP.

Исходный код создавал дополнительный байт (со значением 0x00)

Dim fileContents(oFile.Length) As Byte
Using fr As FileStream = oFile.OpenRead
  fr.Read(fileContents, 0, Convert.ToInt32(oFile.Length))
End Using

и вот пересмотренный вариант.

Dim Length As Integer = oFile.Length - 1
Dim fileContents(Length) As Byte
Using fr As FileStream = oFile.OpenRead
  fr.Read(fileContents, 0, Convert.ToInt32(oFile.Length))
End Using

При загрузке изображений у меня не возникло проблем с классом FTP.Но когда речь идет о файлах XML ...

0 голосов
/ 10 ноября 2010

документ XML без объявления DOCTYPE недействителен

- xml.com

См. Допустимый вывод XML: включая объявления DOCTYPE на XML.com , примерно на полпути вниз по странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...