-2

編集後に文字列を 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 は大きく、これはほんの一部です

<?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>
4

3 に答える 3

6

タグがドキュメントの最初にあることを確認してください<?xml(そして、その前に何もないことを確認してください。これには空白が含まれます)。<?xmlドキュメントごとに 1 回しか使用できないため、大量の XML があり、このタグが行のどこかで繰り返されている場合、ドキュメントは有効ではありません。

于 2013-08-31T09:47:45.597 に答える
2

私の場合、これはバイト オーダー マーク (BOM) に関連していました。Notepad ++で選択したエンコーディング「BOMなしのUTF-8でエンコード」でファイルを開き、迷惑な文字を表示して削除することができました。

于 2013-11-25T06:39:38.383 に答える
0

このエラーは、以前に xml ファイルをブール値「append = true」で保存した場合に発生する可能性があります。「false」の場合、動作するはずです。

于 2014-10-23T18:58:47.470 に答える