我在编辑后将字符串解析为XDocument时出现此错误并保存。但任何人都可以帮我找到错误位置 - 第1行,第10475位。我怎么能得到那个位置?
System.Xml.XmlException:意外的XML声明。 XML 声明必须是文档中的第一个节点,并且没有空格 允许字符出现在它之前。第1行,第10475位。
if (storage.FileExists("APPSDATA.xml"))
{
var reader = new StreamReader(new IsolatedStorageFileStream("APPSDATA.xml", FileMode.Open, storage));
string xml = reader.ReadToEnd();
var xdoc = XDocument.Parse(xml);//error here
reader.Close();
XML很大,这是jus的一部分
<?xml version="1.0" encoding="UTF-8"?>
<Ungdungs>
<Ungdung>
<Name>HERE City Lens</Name>
<Id>b0a0ac22-cf9e-45ba-8120-815450e2fd71</Id>
<Path>/Icon/herecitylens.png</Path>
<Version>1.0.0.0</Version>
<Category>HERE</Category>
<Date>Uknown</Date>
</Ungdung>
<Ungdung>
<Name>HERE Transit</Name>
<Id>adfdad16-b54a-4ec3-b11e-66bd691be4e6</Id>
<Path>/Icon/heretransit.png</Path>
<Version>1.0.0.0</Version>
<Category>HERE</Category>
<Date>Uknown</Date>
</Ungdung>
答案 0 :(得分:5)
确保您的<?xml
标记是文档中的第一个标记(并且它之前没有任何内容,包括空格)。
每个文档只能有一个<?xml
,所以如果你有大量的XML,并且你的文档无法在某个地方重复使用,那么你的文档将无效。
答案 1 :(得分:1)
在我的情况下,这与字节顺序标记 - BOM有关。我在Notepad ++中打开了文件选择编码&#34;编码为UTF-8而没有BOM&#34;然后能够看到恼人的特征并删除它。
答案 2 :(得分:0)
如果您之前使用boolean&quot; append = true&#39;保存了xml文件,则可能会发生此错误。 如果错误&#39;它应该有用。