zoukankan      html  css  js  c++  java
  • XML的两种读取方法

    1.xml文件内容如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <info>
    <book id ="b1" lang ="en">
    <name>c++</name>
    <price>555</price>
    </book>
    <book id ="b2" lang ="en">
    <name>c#</name>
    <price>666</price>
    </book>
    </info>

    这个文件可以放在resources或者StreamingAssets这个下面,所以有了两种路径读取方式,读取方式如下

    using UnityEngine;
    using System.IO;
    using System.Xml;
    using System.Collections;

    public class ReadXml : MonoBehaviour {


    /// <summary>
    /// resources下面读取xml的方法
    /// </summary>
    //void Start()
    //{

    // //resources下面的读法
    // TextAsset textAsset = Resources.Load("XMLFile1", typeof(TextAsset)) as TextAsset;
    // ReadXML(new MemoryStream(textAsset.bytes));
    //}

    /// <summary>
    /// StreamingAssets 下面的读取xml的方法
    /// </summary>
    /// <returns></returns>
    IEnumerator Start()
    {
    WWW www = new WWW("file://" + Application.streamingAssetsPath + "/XMLFile1.xml");
    yield return www;

    ReadXML(new MemoryStream(www.bytes));
    www.Dispose();
    }

    // Update is called once per frame
    void Update ()
    {

    }

    void ReadXML(Stream stream) {
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(stream);

    XmlNode info = xmlDoc.SelectSingleNode("info");
    foreach (XmlNode node in info.ChildNodes)
    {
    string id = node.Attributes["id"].InnerText;
    string lang = node.Attributes["lang"].InnerText;

    string name = node.SelectSingleNode("name").InnerText;

    Debug.Log(node.Name + "/" + "id =" + id + " lang = " + lang + " name = " + name);
    }
    }
    }

  • 相关阅读:
    JAVA消息对话框
    stringbuffer capacity()的疑问
    JAVA确认对话框
    c/c++实现获取NOD32升级账号密码
    复制构造函数(拷贝构造函数)
    使用VC将sqlite3.def转化为sqlite3.lib
    Windows下安装OpenSSL
    java中io与nio的使用
    使用 XStream 把 Java 对象序列化为 XML
    使用 XStream 把 Java 对象序列化为 XML
  • 原文地址:https://www.cnblogs.com/xwwFrank/p/4818593.html
Copyright © 2011-2022 走看看