1

私の XML は次のような構造になっています。

<rootNode>
   <node/>
   <otherNode/>
   <specificNode>
      nested nodes
   </specificNode>
   <specificNode>
      nested nodes
   </specificNode>
</rootNode>

次に、対応するクラスがあります:

class rootNode
{
   string node;
   string otherNode;
   List<specificNodesClass> specificNodes;
}

class specificNodesClass
{
   //all the specific Node's nested nodes
}

XML を逆シリアル化して rootNode 型オブジェクトをフルフィルするにはどうすればよいですか? 私はもう試した :

XmlSerializer serializer = new XmlSerializer(typeof(rootNode));
result = (rootNode)serializer.Deserialize(xdocument.CreateReader(ReaderOptions.None));

[XmlElement("specificNode")]上記で、List<specificNodesClass> specificNodes;「入力文字列が正しい形式ではありませんでした」というメッセージが表示されます。例外。

specificNode のネストされた要素の不適切な逆シリアル化が原因の例外でしょうか?

私が疑ったように、問題は specificNode のネストされたノードの 1 つにありました。問題が解決しました!みんなありがとう!

4

2 に答える 2

0

次のコードを使用して、XML を逆シリアル化できます。

XmlSerializer deserializer = new XmlSerializer(typeof(rootNode));
TextReader reader = new StreamReader(@"D:\myXml.xml");//path of xml file
object obj = deserializer.Deserialize(reader);
rootNode XmlData = (rootNode)obj;
reader.Close();

詳細については、ここをクリックしてください

于 2013-06-18T10:23:10.650 に答える