XML。在文档的顶级无效。处理资源时出错

时间:2010-11-09 22:20:32

标签: asp.net xml ftp xmlhttprequest hex

请你指点一下,以下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>

我确信我可以使用休息时间,但如果我不这样做,在上传特定文件之前,我在localhost没有错误。

UPDATE:检查Xml(十六进制)后,我注意到在0x00

之后,神奇地添加了字符</root>(NULL)

通过神奇地说我的意思......

XML文件通常在localhost创建。 NULL字符附加一个自定义FTP类(用于上传 - 以二进制模式),或其他我无法想象的东西..

2 个答案:

答案 0 :(得分:1)

至少我找到了问题的根源!该错误与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文件......

答案 1 :(得分:-2)

  

没有DOCTYPE的XML文档   声明无效

- xml.com

请参阅XML.com处的有效XML输出:包括DOCTYPE声明,大约在页面的中间位置。