web-dev-qa-db-ja.com

XMLドキュメントにエラーがあります(2、2)。これはどういう意味ですか?

XMLドキュメントを読み込もうとしています。私のXML:

_<?xml version="1.0" encoding="utf-8"?>
<SplashScreen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Path>SplashScreen/Image-King</Path>
</SplashScreen>
_

XMLを読み取っている私のコード:

_XmlGameScreen = new XmlManager<GameScreen>();
XmlGameScreen.Type = currentscreen.Type;
currentscreen = XmlGameScreen.Load("LoadXML/SplashScreen.xml");
_

そして

_public Type Type;
public T Load(string path)
{
    T instance;
    using (TextReader textreader = new StreamReader(path))
    {

        XmlSerializer xml = new XmlSerializer(Type);
        instance = (T)xml.Deserialize(textreader);
    }
    return instance; 
}
_

instance = (T)xml.Deserialize(textreader);でエラーが発生しますXMLドキュメントが間違っていますか? _<Path>_を読み込もうとしています。更新:内部例外:_'MyRPGgame.SplashScreen._image'_タイプのメンバー_'Microsoft.Xna.Framework.Graphics.Texture2D'_をシリアル化できません

16
Losser Bad

私の経験では、2番目の文字の2行目にエラーがあります。クラス名がXMLタグと異なるかどうかを確認してください。 「XMLルート名」を別の名前に変更している可能性がありますか?.

XML構造と、どのノードにどのクラスをシリアル化するかを確認してください。

また、 XmlRootAttributeクラスに関するMSDNドキュメント もお読みください。

8
user853710

私の場合、SSRSプロジェクトを開こうとすると、Visual Studio 2017バージョン15.5の更新の1つがこのエラーを引き起こしたようです。解決策は、プロジェクトフォルダーから* .rptproj.rsuserファイルを削除して、再試行することです。

28
user875318

これは通常、ファイルの先頭に空白があることを意味します。 <?xml...の前に改行がないか確認してください。さらに良い:バイナリエディタで表示したファイルの最初の数バイト(できれば<SplashScreenまで)を表示してください。

それはcouldはまた、<SplashScreenの前のどこかに非表示のユニコードまたは制御文字があることを意味します

3
Marc Gravell

私は同じ問題に直面しましたが、私の場合は[XmlArrayAttribute]は、ゲッターに[XmlIgnoreAttribute]初期化されていないままにされました。

0
Darius