Como carregar?
Uma vez com um arquivo XML dentro da pasta Resources,
exemplo:
<achievement>
<uniqueid>0</uniqueid>
<referencename>My Achievement</referencename>
<goal>Solve until 10 seconds</goal>
<points>10</points>
</achievement>
using UnityEngine;
using System.Collections;
using System.Xml;
public class XMLEditor : MonoBehaviour
{
void Awake()
{
//Load
TextAsset textXML = (TextAsset)Resources.Load("myxml.xml", typeof(TextAsset));
XmlDocument xml = new XmlDocument();
xml.LoadXml(textXML.text);
}
}
Como ler o arquivo XML?
Ler o arquivo XML é realmente muito simples utilizando as classes da .NET framework
using UnityEngine;
using System.Collections;
using System.Xml;
public class XMLEditor : MonoBehaviour
{
void Awake()
{
//Load
TextAsset textXML = (TextAsset)Resources.Load("myxml.xml", typeof(TextAsset));
XmlDocument xml = new XmlDocument();
xml.LoadXml(textXML.text);
//Read
XmlNode root = xml.FirstChild;
foreach(XmlNode node in root.ChildNodes)
{
if (node.FirstChild.NodeType == XmlNodeType.Text)
Debug.Log(node.InnerText);
}
}
}
Obviamente essa é maneira mais simples de ler um XML, e caso o XML possua diversas hierarquias, você deverá implementar seu método de navegação através dos nós.
Como salvar em XML?
using UnityEngine;
using System.Collections;
using System.Xml;
public class XMLEditor : MonoBehaviour
{
void Awake()
{
//Load
TextAsset textXML = (TextAsset)Resources.Load("myxml.xml", typeof(TextAsset));
XmlDocument xml = new XmlDocument();
xml.LoadXml(textXML.text);
//Read
XmlNode root = xml.FirstChild;
foreach(XmlNode node in root.ChildNodes)
{
if (node.FirstChild.NodeType == XmlNodeType.Text)
node.InnerText = "none";
}
//Simple Save
xml.Save(AssetDatabase.GetAssetPath(textXML));
}
}
E através do AssetDatabase recuperamos o local do arquivo que foi carregado e salvamos por cima.
Eis a maneira mais rápida e fácil de carregar, ler e salvar arquivos XML na Unity3D
Nenhum comentário:
Postar um comentário