I have a little problem with parsing XML file to object in C#. Whole project is in Unity3D. So I have this XML file:
<Questions>
<Question>
<questionText>What is this?</questionText>
<answer>blablabla</answer>
</Question>
</Questions>
And this is my parsing class:
using UnityEngine;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
using System;
public struct Montage {
[XmlElement("questionText")]
public string questionText;
[XmlElement("answer")]
public string answer;
}
[XmlRoot("Questions"), XmlType("Questions")]
public class ConfigScene {
[XmlArray("Questions")]
[XmlArrayItem("Question")]
public List<Montage> questions = new List<Montage> ();
public static ConfigScene Load(string path) {
try {
XmlSerializer serializer = new XmlSerializer (typeof(ConfigScene));
using(FileStream stream = new FileStream(path, FileMode.Open)) {
return serializer.Deserialize(stream) as ConfigScene;
}
} catch (Exception e) {
UnityEngine.Debug.LogError ("Exception loading config file: " + e);
return null;
}
}
}
I’m calling this “Load” method in camera Object in Start() method:
void Start () {
confScene = ConfigScene.Load(Path.Combine(Application.dataPath, "Config/config2.xml"));
foreach(Montage o in confScene.questions) {
Debug.Log (o.questionText);
}
}
The problem is that my questions list is empty and I didn’t get any provided data into it. Do I make something wrong? Maybe someone made it before and know what is wrong with this code?