【发布时间】:2019-01-09 20:16:01
【问题描述】:
我的 Xml 加载器将数据从 xml 文件保存到类列表。 Dialog 是具有 2 个属性的类:id 和 text,其中保存 xml 文件的内容。我想通过 id 变量的值从 DialogContainer.cs 中的列表中获取 DialogLoader.cs 中的“文本”变量值。我怎样才能做到这一点?这可能很容易,但我不知道如何。
dialogs.xml
<?xml version="1.0" encoding="UTF-8"?>
<DialogCollection>
<Dialogs>
<Dialog id="1">
<Text>Hello my friend</Text>
</Dialog>
<Dialog id="2">
<Text>Hello my grandma</Text>
</Dialog>
<Dialog id="3">
<Text>Hello my grandpa</Text>
</Dialog>
</Dialogs>
</DialogCollection>
DialogLoader.cs
public class DialogLoader : MonoBehaviour
{
public const string path = "dialogs";
void Start()
{
DialogContainer dc = DialogContainer.Load(path);
//There I want to get text for example by id 1 (Hello my friend)
foreach (Dialog item in dc.dialogs)
{
print(item.text);
}
}
DialogContainer.cs
[XmlRoot("DialogCollection")]
public class DialogContainer
{
[XmlArray("Dialogs")]
[XmlArrayItem("Dialog")]
public List<Dialog> dialogs = new List<Dialog>();
public static DialogContainer Load(string path)
{
TextAsset _xml = Resources.Load<TextAsset>(path);
XmlSerializer serializer = new XmlSerializer(typeof(DialogContainer));
StringReader reader = new StringReader(_xml.text);
DialogContainer dialogs = serializer.Deserialize(reader) as DialogContainer;
reader.Close();
return dialogs;
}
}
Dialog.cs
public class Dialog
{
[XmlAttribute("id")]
public string id;
[XmlElement("Text")]
public string text;
}
【问题讨论】: