XML文件各种操作--源码
来源:互联网 发布:国家数据统计 编辑:程序博客网 时间:2024/05/22 14:41
1:CreateXmlDoc1 (); // 创建XML文件:方法1
2:CreateXmlDoc2 (); // 创建XML文件:方法2
3:AddXmlNode(); // 添加一个XmlNode节点4: ModifyXmlNodeValue(); // 修改XmlNode节点的值(属性和子结点)
5: ModifyXmlNode (); // 修改结点(添加结点的属性和添加结点的子结点)
6: DeleteNodeProp(); // 删除结点中的某一个属性
7: DeleteXmlNode(); // 删除结点
8:ReadXmlText(); // 按照文本文件读取xml
using UnityEngine;using System;using System.Text;using System.IO;using System.Xml;using System.Collections;public class XMLDoc : MonoBehaviour {XmlDocument xmldoc;XmlNode xmlnode;XmlElement xmlelem;string savePath = Directory.GetCurrentDirectory () + "/data.xml";// Use this for initializationvoid Start () {//CreateXmlDoc1 (); // 1:创建XML文件:方法1//CreateXmlDoc2 (); // 2:创建XML文件:方法2//AddXmlNode(); // 3:添加一个XmlNode节点//ModifyXmlNodeValue(); // 4: 修改XmlNode节点的值(属性和子结点)//ModifyXmlNode (); // 5: 修改结点(添加结点的属性和添加结点的子结点) //DeleteNodeProp(); // 6:删除结点中的某一个属性//DeleteXmlNode(); // 7: 删除结点ReadXmlText(); // 8: 按照文本文件读取xmlDebug.Log("Done ! "); }void ReadXmlText() // 8:按照文本文件读取xml{StreamReader myFile = new StreamReader(savePath, Encoding.Default);//注意System.Text.Encoding.Defaultstring myString = myFile.ReadToEnd();//myString是读出的字符串Debug.Log(myString);myFile.Close();}void DeleteXmlNode() // 7: 删除结点{XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(savePath); XmlNode root=xmlDoc.SelectSingleNode("Employees");XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes; for(int i=0;i<xnl.Count;i++){XmlElement xe=(XmlElement)xnl.Item(i); if(xe.GetAttribute("ISBN")=="1-1111-1") { root.RemoveChild(xe);if(i<xnl.Count)i=i-1;} }xmlDoc.Save(savePath); }void DeleteNodeProp() // 6: 删除结点中的某一个属性{XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(savePath); try{XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes; for(int i=0;i<xnl.Count;i++){ //if (xnl.Item(i) == null)//return;XmlElement xe=(XmlElement)xnl.Item(i); xe.RemoveAttribute("genre");//删除genre属性 XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)//遍历 { XmlElement xe2=(XmlElement)xn1;//转换类型 if(xe2.Name=="flag")//如果找到 { xe.RemoveChild(xe2);//则删除} } } }catch(Exception e){Debug.Log (e.Message);}xmlDoc.Save(savePath); }void ModifyXmlNode() // 5: 修改结点(添加结点的属性和添加结点的子结点) {XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(savePath); XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点 foreach(XmlNode xn in nodeList) { XmlElement xe=(XmlElement)xn; xe.SetAttribute("test","111111");XmlElement xesub=xmlDoc.CreateElement("flag"); xesub.InnerText="1"; xe.AppendChild(xesub); } xmlDoc.Save(savePath);}void ModifyXmlNodeValue() // 4: 修改XmlNode节点的值(属性和子结点){XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(savePath); XmlNodeList nodeList=xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点 foreach(XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 if(xe.GetAttribute("genre")=="张三")//如果genre属性值为“张三” { xe.SetAttribute("genre","update张三");//则修改该属性为“update张三” XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)//遍历 { XmlElement xe2=(XmlElement)xn1;//转换类型 if(xe2.Name=="author")//如果找到 { xe2.InnerText="亚胜";//则修改} } } } xmlDoc.Save(savePath);//保存}void AddXmlNode() // 3:添加一个XmlNode节点{XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(savePath); XmlNode root=xmlDoc.SelectSingleNode("Employees");//查找<Employees> XmlElement xe1=xmlDoc.CreateElement("Node");//创建一个<Node>节点 xe1.SetAttribute("genre","张三");//设置该节点genre属性 xe1.SetAttribute("ISBN","1-1111-1");//设置该节点ISBN属性 XmlElement xesub1=xmlDoc.CreateElement("title"); xesub1.InnerText="C#入门帮助";//设置文本节点 xe1.AppendChild(xesub1);//添加到<Node>节点中 XmlElement xesub2=xmlDoc.CreateElement("author"); xesub2.InnerText="高手"; xe1.AppendChild(xesub2); XmlElement xesub3=xmlDoc.CreateElement("price"); xesub3.InnerText="158.3"; xe1.AppendChild(xesub3); root.AppendChild(xe1);//添加到<Employees>节点中 xmlDoc.Save (savePath);}void CreateXmlDoc2() // 2:创建XML文件:方法2{XmlTextWriter xmlWriter;string strFilename = savePath;xmlWriter = new XmlTextWriter (strFilename, Encoding.Default); //创建一个xml文档xmlWriter.Formatting = Formatting.Indented;xmlWriter.WriteStartDocument ();xmlWriter.WriteStartElement ("Employees");xmlWriter.WriteStartElement("Node");xmlWriter.WriteAttributeString("genre","DouCube");xmlWriter.WriteAttributeString("ISBN","2-3631-4");xmlWriter.WriteStartElement("title");xmlWriter.WriteString("CS从入门到精通");xmlWriter.WriteEndElement();xmlWriter.WriteStartElement("author");xmlWriter.WriteString("候捷");xmlWriter.WriteEndElement();xmlWriter.WriteStartElement("price");xmlWriter.WriteString("58.3");xmlWriter.WriteEndElement();xmlWriter.WriteEndElement();xmlWriter.Close();}void CreateXmlDoc1() // 1:创建XML文件:方法1{xmldoc = new XmlDocument ();//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>XmlDeclaration xmldecl;xmldecl = xmldoc.CreateXmlDeclaration ("1.0", "gb2312", null);xmldoc.AppendChild (xmldecl);//加入一个根元素xmlelem = xmldoc.CreateElement("", "Employees", "");xmldoc.AppendChild (xmlelem);//加入另外一个元素for (int i = 1; i < 3; i++) {XmlNode root = xmldoc.SelectSingleNode ("Employees"); //查找<Employees> XmlElement xe1 = xmldoc.CreateElement("Node"); //创建一个<Node>节点 xe1.SetAttribute("genre", "DouCube"); //设置该节点genre属性 xe1.SetAttribute("ISBN", "2-3631-4"); //设置该节点ISBN属性 XmlElement xesub1 = xmldoc.CreateElement ("title");xesub1.InnerText = "CS从入门到精通";//设置文本节点 xe1.AppendChild(xesub1); //添加到<Node>节点中XmlElement xesub2=xmldoc.CreateElement("author"); xesub2.InnerText="候捷"; xe1.AppendChild(xesub2); XmlElement xesub3=xmldoc.CreateElement("price"); xesub3.InnerText="58.3"; xe1.AppendChild(xesub3); root.AppendChild(xe1);//添加到<Employees>节点中 }xmldoc.Save(savePath);Debug.Log (savePath);Debug.Log ("XML文件创建完成!");}// Update is called once per framevoid Update () {}}
0 0
- XML文件各种操作--源码
- 在应用程序中对xml文件的各种操作
- 使用Dom4j对XML文件的各种操作
- 【转】C#对XML文件的各种操作实现方法
- C#对XML文件的各种操作实现方法
- C++建立通讯录XML文件(包含XML文件的各种操作)
- 文件的各种操作
- File--各种文件操作
- C# 操作 XML 源码
- .net Xml的各种操作
- java各种文件(xml、properties、txt)处理操作的一道题目
- 文件的各种操作类
- java 文件的各种操作
- File文件类各种操作
- MFC中各种文件操作
- C语言各种文件操作
- 操作简单XML文件
- JDOM操作XML文件
- [JAVA学习1]注解
- spring封装hbase的代码实现
- Grub2加密
- python 定时任务去检测服务器端口是否通
- 栈和队列面试题
- XML文件各种操作--源码
- 统计学习方法——感知机(perceptron)
- android 内存管理几篇文章
- Java多线程之并发协作生产者消费者设计模式
- 机器学习系列(18)_Kaggle债务违约预测冠军经验分享
- hex2bin 64bit
- spring事物的传播行为和隔离级别
- 在 eclipse 中设置 servlet 模板
- 浅析深究什么是中间件