效果
代码
using UnityEngine;
using System.IO;
using System.Xml;
using System.Collections;
public class XMLTest : MonoBehaviour {
private string _xmlPath;
private string _userId = "";
private string _userName = "";
// Use this for initialization
void Start ()
{
//xml路径
_xmlPath = Application.dataPath + "/test.xml";
CreatXML();
}
// Update is called once per frame
void Update ()
{
}
void CreatXML()
{
//检测xml是否存在
if (!File.Exists(_xmlPath))
{
//新建xml实例
XmlDocument xmlDoc = new XmlDocument();
//创建根节点,最上层节点
XmlElement data = xmlDoc.CreateElement("data");
xmlDoc.AppendChild(data);
//二级节点
XmlElement user = xmlDoc.CreateElement("user");
data.AppendChild(user);
//二级节点的两个属性
XmlElement userId = xmlDoc.CreateElement("userId");
user.AppendChild(userId);
XmlElement userName = xmlDoc.CreateElement("userName");
user.AppendChild(userName);
//将xml文件保存到本地
xmlDoc.Save(_xmlPath);
Debug.Log("xml creat success!");
}
}
void OnGUI()
{
GUI.Button(new Rect(0, 0, 100, 50), "UserId");
_userId = GUI.TextField(new Rect(100, 0, 100, 50), _userId);
GUI.Button(new Rect(0, 50, 100, 50), "UserName");
_userName = GUI.TextField(new Rect(100, 50, 100, 50), _userName);
if(GUI.Button(new Rect(200,25,100,50),"更改"))
{
UpdateXml(_userId, _userName);
}
//GUI.Button(new Rect(0, 100, 150, 50), "UserId" + _userId);
//GUI.Button(new Rect(0, 150, 150, 50), "UserName" + _userName);
}
void UpdateXml(string userId,string userName)
{
if (File.Exists(_xmlPath))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(_xmlPath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("data/user").ChildNodes;
foreach (XmlElement xe in nodeList)
{
Debug.Log(nodeList.Count);
if (xe.Name == "userId")
{
xe.InnerText = userId;
Debug.Log("edit");
}
if (xe.Name == "userName")
{
xe.InnerText = userName;
break;
}
}
xmlDoc.Save(_xmlPath);
}
}
}