微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

unity之XML

using UnityEngine;
using System.Collections;
using System.Xml;
using System.IO;
public class xmlTest : MonoBehavIoUr
{

    //Xml
    //读取本地xml,增删改查
    //读取网络xml,增删改查,带有节点的
    //在本地生成xml文件

    void Start()
    {

        //成创建一个文件夹,FileStream操作的是字节byte
        //   FileStream fileStream = new FileStream(Application.dataPath + "/MyXml",FileMode.Create);//创建一个文件
//   //写文件,StreamWrite操作的是字符
    StreamWriter writer = new StreamWriter(Application.dataPath+"/json.txt",true);//路径,是否追加,(接着上一次的文件里的内容接着写,fasle:就完全覆盖掉了)
    writer.Write(json);
    writer.Close()
        //Open:打开现有文件,如果不存在则发生异常
        //Create:创建一个文件,如果已经存在则发生异常
        //openorCreate:尝试打开已经存在的文件,如果还不存在就新建一个

        StartCoroutine("CreateFile");



    }


    void Update()
    {

    }

    IEnumerator CreateFile()
    {
        //创建一个xml文件
        // FileStream fileStream = new FileStream(Application.dataPath + "/My.xml",FileMode.OpenorCreate);
        // fileStream.Close();
        yield return new WaitForSeconds(0.5f);

        //XmlDocument xmlDocument = new XmlDocument();
        //XmlElement people =   xmlDocument.CreateElement("people");
        //xmlDocument.AppendChild(people);
        //xmlDocument.Save("Assets/My.xml");//生成一个文件,
        //     xmlDocument.Load("Assets/My.xml");//加载一个这个路径的xml文件,这个文件里面不能为空

        //创建XML的方式
        //1.使用xmlDocument,创建节点啥的,然后save到一个路径下
        //2.使用xmlTextReader



        //   XmlTextWriter xmlwriter = new XmlTextWriter("Assets/My2.xml",System.Text.Encoding.UTF8);//创建了一个xml文件

        //      XmlTextWriter xm = new XmlTextWriter("Assets/My3",System.Text.Encoding.UTF8);//只能创建XML文件,你不用写后缀


        //读取一个xml问件,得从头开始访问,或者给出你要访问的那个节点的位置

        //XmlDocument xmldocument = new XmlDocument();
        //xmldocument.Load("Assets/Cartoon.xml");
        //XmlElement xme =(XmlElement)  xmldocument.SelectSingleNode("result/results/AlbumInfo/albumId");
        // print(xme.InnerText);

        //用xmlTextReader
        XmlTextReader reader = new XmlTextReader("Assets/Cartoon.xml");

        while (reader.Read())
        {
            if (reader.NodeType == XmlNodeType.Element)
            {
                if (reader.Name=="albumId")//把所有的albumid都读取出来了,然而不能得到一个特定的值
                {
                 print(reader.ReadElementContentAsstring());
                }
            }

        }

    }
}

读取xml的三种方式

1.DOM:结构文档方式,把所有的文件都读到内存中,它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询

2.流模型:(XmlTextReader,XmlTextWrite(推模型:SAX,拉模型:XmlTextReader)):内存中只有当前节点,不可以回流

原文地址:https://www.jb51.cc/xml/296155.html

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