Unity上使用Linq To XML——简单易维护的代码

项目里经常会碰到XML的使用,操作用法无非就是增删改查。使用C#的原始XML来写非常麻烦,但是使用Linq to XML来写就相对简洁的多了。首先,创建一个脚本,名为Linq to XML,去掉它继承与MonoBehaviour。代码如下:

本帖隐藏的内容

[C#] 纯文本查看 复制代码
using unityEngine;
using System.Collections;
using System.Linq;
using System.Xml.Linq;
using System;

public class XML {
//static string xmlpath = Application.persistentDataPath + @"\myXML";//平台相关的路径(移动端)
static string xmlpath=Application.dataPath+@"\mydfdfXML";//电脑上的路径,移动端没有这个访问权限
/// <summary>
/// 初始化一个XML文件
/// </summary>
public static void CreateXMLDocument()
{
XElement root = new XElement("XMLContent",
new XElement("Herb1",new XAttribute("MyVaule","0")),
new XElement("Herb2",
new XElement("Herb3",
new XElement("Pill1",
new XElement("Pill2",
new XElement("Pill3",
new XElement("Level",
new XElement("Root","root")
);
root.Save(xmlpath);
}
public static XElement LoadXMLFromFile()
{
XElement root = XElement.Load(xmlpath);
return root;
}
public static void SetElementValue(string name,string value)
{
XElement root = LoadXMLFromFile();
root.Element(name).SetAttributeValue("MyVaule",value);
root.Save(xmlpath);
}
/// <summary>
/// 在根节点元素之前添加新的元素
/// </summary>
/// <param name="name">元素名字</param>
/// <param name="value">元素的值</param>
public static void AddElement(string name,string value)
{
XElement root = LoadXMLFromFile();
root.Element("Root").AddBeforeSelf(new XElement(name,new XAttribute("MyValue",value)));
root.Save(xmlpath);
}
/// <summary>
/// 删除指定的元素
/// </summary>
/// <param name="name">要删除的元素名称</param>
public static void RemoveElement(string name)
{
XElement root = LoadXMLFromFile();
root.Element(name).Remove();
root.Save(xmlpath);
}
/// <summary>
/// 根据元素名查找元素对应的值
/// </summary>
/// <param name="name">元素名</param>
/// <returns></returns>
public static string GetElementValue(string name)
{
XElement root = LoadXMLFromFile();
XAttribute xattr = root.Element(name).Attribute("MyVaule");
string s = xattr.Value;
return s;
}
}
项目里经常会碰到XML的使用,操作用法无非就是增删改查。使用C#的原始XML来写非常麻烦,但是使用Linq to XML来写就相对简洁的多了。首先,创建一个脚本,名为Linq to XML,去掉它继承与MonoBehaviour。代码如下:
   
   

本帖隐藏的内容

[C#] 纯文本查看 复制代码
using unityEngine;
using System.Collections;
using System.Linq;
using System.Xml.Linq;
using System;

public class XML {
//static string xmlpath = Application.persistentDataPath + @"\myXML";//平台相关的路径(移动端)
static string xmlpath=Application.dataPath+@"\mydfdfXML";//电脑上的路径,移动端没有这个访问权限
/// <summary>
/// 初始化一个XML文件
/// </summary>
public static void CreateXMLDocument()
{
XElement root = new XElement("XMLContent",new XElement("Herb1",new XElement("Herb2",new XElement("Herb3",new XElement("Pill1",new XElement("Pill2",new XElement("Pill3",new XElement("Level",new XElement("Root","root")
);
root.Save(xmlpath);
}
public static XElement LoadXMLFromFile()
{
XElement root = XElement.Load(xmlpath);
return root;
}
public static void SetElementValue(string name,string value)
{
XElement root = LoadXMLFromFile();
root.Element(name).SetAttributeValue("MyVaule",value);
root.Save(xmlpath);
}
/// <summary>
/// 在根节点元素之前添加新的元素
/// </summary>
/// <param name="name">元素名字</param>
/// <param name="value">元素的值</param>
public static void AddElement(string name,string value)
{
XElement root = LoadXMLFromFile();
root.Element("Root").AddBeforeSelf(new XElement(name,value)));
root.Save(xmlpath);
}
/// <summary>
/// 删除指定的元素
/// </summary>
/// <param name="name">要删除的元素名称</param>
public static void RemoveElement(string name)
{
XElement root = LoadXMLFromFile();
root.Element(name).Remove();
root.Save(xmlpath);
}
/// <summary>
/// 根据元素名查找元素对应的值
/// </summary>
/// <param name="name">元素名</param>
/// <returns></returns>
public static string GetElementValue(string name)
{
XElement root = LoadXMLFromFile();
XAttribute xattr = root.Element(name).Attribute("MyVaule");
string s = xattr.Value;
return s;
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇