我需要將XML中的多個字段保存到不同的數組中。 這是我的XML是什麼樣子:將有根元素的XML元素反序列化到數組中
<Content>
<Colours>
<Colour name="Strong Red">
<R>255</R>
<G>0</G>
<B>0</B>
<A>255</A>
</Colour>
</Colours>
<Textures>
<Texture name="Character01">
<Path>Path/Folder</Path>
</Texture>
</Textures>
</Content>
現在一切工作正常,當<Colours>
是我的根,我只加了顏色成一個陣列。
現在我想通過相同的XML文件添加紋理,然後更多,從而將根移動到<Content>
。
這是我的ColourLoader類看上去就像只有顏色和<Colour>
是我的XML的根:
[Serializable()]
[XmlRoot("Colours")]
public class ColourLoader
{
[XmlElement("Colour")]
public CustomColour[] Colours;
public static ColourLoader Load(string path)
{
var serializer = new XmlSerializer(typeof(ColourLoader));
using (var stream = new FileStream(path, FileMode.Open))
{
return serializer.Deserialize(stream) as ColourLoader;
}
}
}
我CustomColour級工作正常,它使用[XmlElement("R")]
等從XML讀出值。只是我不知道如何從嵌套的XML中讀取元素。 我無論如何都跳過<Content>
和<Colours>
添加顏色爲根,做同樣的<Textures>
等
我不想創建多個XML文件,因爲我想保留的所有內容管理在一處,只加載一次XML文件。
創建一個Content類併爲其添加一個屬性Colours。 – EZI 2015-02-23 16:46:13
你打算從同一個XML文檔中加載單獨的'* Loader'類('ColourLoader','TextureLoader'等)嗎? – Jamiec 2015-02-23 16:51:40
這就是它目前的設置,是的。我寧願將內容加載到一個類中,但這是我第一次使用Xml。現在設置的方式就是各種嘗試的結果。 – Rynji 2015-02-23 17:10:46