using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
namespace XMLData
{
public class XMLDataTest
{
#region XML文档的创建【实际项目中很少用】
/*
*<?xml version ="1.0" encoding="utf-8" ?>
<root>
<Students>
<Student id="1">
<Name>张三</Name>
<Age>15</Age>
</Student>
<Student id="2">
<Name>李四</Name>
<Age>25</Age>
</Student>
</Students>
</root>
*
*/
/// <summary>
/// 创建XML文档
/// </summary>
private void CreateXMLFile()
{
//创建文档
XmlDocument doc = new XmlDocument();
//创建声明
XmlDeclaration decl = doc.CreateXmlDeclaration("1.0", "utf-8", "");
doc.AppendChild(decl);
//创建root节点
XmlElement root = doc.CreateElement("root");
doc.AppendChild(root);
//创建Students节点
XmlElement students = doc.CreateElement("Students");
root.AppendChild(students);
string[] Names = new string[] {"张三","李四"};
string[] Ages = new string[] {"12","15"};
for (int i = 0; i < Names.Length; i++)
{
//创建student节点
XmlElement student = doc.CreateElement("Student");
//第1种设置属性的方式
student.SetAttribute("id",(i+1).ToString());
第2种设置属性的方式
//XmlAttribute att = doc.CreateAttribute("id");
//att.Value = (i + 1).ToString();
//student.Attributes.Append(att);
//创建Name节点
XmlElement name = doc.CreateElement("Name");
name.InnerText = Names[i];
student.AppendChild(name);
//创建Age节点
XmlElement age = doc.CreateElement("Age");
age.InnerText = Ages[i];
student.AppendChild(age);
students.AppendChild(student);
}
//保存文档
doc.Save(Application.dataPath+"/XML/test.xml");
}
#endregion
/// <summary>
/// 解析XML文档方式1
/// 层层递进访问目标节点数据
/// </summary>
private void LoadXMLFile1()
{
//创建文档
XmlDocument doc = new XmlDocument();
//加载文档
doc.Load(Application.dataPath + "/XML/test.xml");
//获取root节点
XmlElement root = doc.LastChild as XmlElement;
//获取Students节点
XmlElement students = doc.FirstChild as XmlElement;
//循环遍历Student节点
foreach (XmlElement student in students.ChildNodes)
{
//获取属性ID
string id = student.GetAttribute("id");
//获取名字
string name = student.ChildNodes[0].InnerText;
//获取年龄
string age = student.ChildNodes[1].InnerText;
}
}
/// <summary>
/// 解析XML文档方式二
/// 根据Xpath节点路径来访问数据
/// </summary>
private void LoadXMLFile2()
{
//创建文档
XmlDocument doc = new XmlDocument();
//加载文档
doc.Load(Application.dataPath + "/XML/test.xml");
XmlNodeList nodeList = doc.SelectNodes("/root/Students/Student/Name");
foreach (XmlElement ele in nodeList)
{
string name = ele.InnerText;
}
}
}
}
xml文档的创建与解析
最新推荐文章于 2022-08-09 17:29:15 发布