1、在StreamingAssets文件夾下面新建一個test.xml文件。
2、編輯該文件,輸入並保存如下內容
<root>
<username>蔡徐坤</username>
<password>jinitaimei</password>
<fans>
<fan name="張三" age="11"/>
<fan name="李四" age="12"/>
<fan name="愛因斯坦" age="18"/>
</fans>
</root>
3、新建一個Test.cs腳本。
using UnityEngine;
using System.Xml;
public class Test : MonoBehaviour
{
void Start()
{
//初始化一個xml實例
XmlDocument xmlDocument = new XmlDocument();
//加載指定xml文件
xmlDocument.Load(Application.streamingAssetsPath+"/test.xml");
//指定一個單獨節點
XmlNode rootNode = xmlDocument.SelectSingleNode("root");
//指定一個username節點;(當前指定了根節點,在使用SelectSingleNode方法時,只會在它的子層尋找,不能找到孫子層)
XmlNode usernameNode = rootNode.SelectSingleNode("username");
//打印當前節點的文本(打印結果爲蔡徐坤)
print(usernameNode.InnerText);
//獲取蔡徐坤所有粉絲的根節點 (這裏也可以使用xmlDocument對象使用絕對路徑查找)
XmlNode fansNode = xmlDocument.SelectSingleNode("/root/fans");
//得到所有粉絲
XmlNodeList fansNodeList = fansNode.ChildNodes;
foreach (XmlNode fanNode in fansNodeList)
{
//獲取粉絲屬性的兩種方式
print(fanNode.Attributes[0].Value);
print(fanNode.Attributes.GetNamedItem("age").Value);
//愛因斯坦不是他的粉絲。移除這個節點
if (fanNode.Attributes[0].Value == "愛因斯坦")
{
fansNode.RemoveChild(fanNode);
}
}
//新建一個粉絲
XmlElement newFan = xmlDocument.CreateElement("fan");
//設置新建粉絲屬性
newFan.SetAttribute("name", "吳亦凡");
newFan.SetAttribute("age", "18");
//將新建的粉絲加入fans
fansNode.AppendChild(newFan);
//保存上面對xmlDocument的操作
xmlDocument.Save(Application.streamingAssetsPath + "/test.xml");
}
}
4、運行後,Console打印如下內容
test.xml文件中的內容更改如下
<root>
<username>蔡徐坤</username>
<password>jinitaimei</password>
<fans>
<fan name="張三" age="11" />
<fan name="李四" age="12" />
<fan name="吳亦凡" age="18" />
</fans>
</root>
注意:
1、xml文件只能建立在StreamingAssets文件夾中。否則打包成exe文件時,程序就不能讀取到該文件了。
2、在新建節點時使用的是XmlElement類,它其實是XmlNode的子類。XmlNode是一個抽象類,很多相關於xml解析的類都繼承了這個類。