//解析和输出XML
public void showXml()
{
string filepath = Application.dataPath + @"/my.xml";
if(File.Exists (filepath))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filepath);
XmlNodeList nodeList=xmlDoc.SelectSingleNode("transforms").ChildNodes;
//遍历每一个节点,拿节点的属性以及节点的内容
foreach(XmlElement xe in nodeList)
{
Debug.Log("Attribute :" + xe.GetAttribute("name"));
Debug.Log("NAME :" + xe.Name);
foreach(XmlElement x1 in xe.ChildNodes)
{
if(x1.Name == "y")
{
Debug.Log("VALUE :" + x1.InnerText); }
}
}
Debug.Log("all = " + xmlDoc.OuterXml); }
}
//更新XML文件
public void UpdateXml()
{
string filepath = Application.dataPath + @"/my.xml";
if(File.Exists (filepath))
{
XmlDocument xmlDoc = new XmlDocument();
//根据路径将XML读取出来
xmlDoc.Load(filepath);
//得到transforms下的所有子节点
XmlNodeList nodeList=xmlDoc.SelectSingleNode("transforms").ChildNodes;
//遍历所有子节点
foreach(XmlElement xe in nodeList)
{
//拿到节点中属性ID =0的节点
if(xe.GetAttribute("id")=="0")
{
//更新节点属性
xe.SetAttribute("id","1000");
//继续遍历
foreach(XmlElement x1 in xe.ChildNodes)
{
if(x1.Name=="z")
{
//这里是修改节点名称对应的数值,而上面的拿到节点连带的属性。。。
x1.InnerText="update00000";
} }
break;
}
}
xmlDoc.Save(filepath);
Debug.Log("UpdateXml OK!");
} } //手动生成XML
public void createXml()
{
//xml保存的路径,这里放在Assets路径 注意路径。
string filepath = Application.dataPath + @"/my.xml";
//继续判断当前路径下是否有该文件
if(!File.Exists (filepath))
{
//创建XML文档实例
XmlDocument xmlDoc = new XmlDocument();
//创建root节点,也就是最上一层节点
XmlElement root = xmlDoc.CreateElement("transforms");
//继续创建下一层节点
XmlElement elmNew = xmlDoc.CreateElement("rotation");
//设置节点的两个属性 ID 和 NAME
elmNew.SetAttribute("id","0");
elmNew.SetAttribute("name","momo");
//继续创建下一层节点
XmlElement rotation_X = xmlDoc.CreateElement("x");
//设置节点中的数值
rotation_X.InnerText = "0";
XmlElement rotation_Y = xmlDoc.CreateElement("y");
rotation_Y.InnerText = "1";
XmlElement rotation_Z = xmlDoc.CreateElement("z");
rotation_Z.InnerText = "2";
//这里在添加一个节点属性,用来区分。。
rotation_Z.SetAttribute("id","1"); //把节点一层一层的添加至XMLDoc中 ,请仔细看它们之间的先后顺序,这将是生成XML文件的顺序
elmNew.AppendChild(rotation_X);
elmNew.AppendChild(rotation_Y);
elmNew.AppendChild(rotation_Z);
root.AppendChild(elmNew);
xmlDoc.AppendChild(root);
//把XML文件保存至本地
xmlDoc.Save(filepath);
Debug.Log("createXml OK!");
}
}

  

XML的解析方式的更多相关文章

  1. XML的解析方式(DOM、SAX、StAX)

    (新)  XML的解析方式(DOM.SAX.StAX) 博客分类: XML   一般来说,解析XML文件存在着两种方式,一种是event-based API,比如说象SAX,XNI. 第二种是tree ...

  2. xml的解析方式的简介

    xml的解析的简介(写到java代码) *xml是一个标记型文档 *js使用dom解析标记型文档? -根据html的层级结构,在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象 -do ...

  3. Android:XML简介 & 解析方式对比(DOM、SAX、PULL)

    目录   示意图 1. 定义 XML,即 extensible Markup Language ,是一种数据标记语言 & 传输格式 2. 作用 对数据进行标记(结构化数据).存储 & ...

  4. 四种xml的解析方式

    这篇文章是我上网找资料,加上自己总结了一些而得 资料来源: http://www.cnblogs.com/allenzheng/archive/2012/12/01/2797196.html http ...

  5. 浅谈 Java Xml 底层解析方式

    XML 使用DTD(document type definition)文档类型来标记数据和定义数据,格式统一且跨平台和语言,已成为业界公认的标准. 目前 XML 描述数据龙头老大的地位渐渐受到 Jso ...

  6. 基于底层的 XML 的解析方式详解

    在上一篇博客中,我们介绍了什么是 XML ,http://www.cnblogs.com/ysocean/p/6901008.html,那么这一篇博客我们介绍如何来解析 XML . 部分文档引用:ht ...

  7. Java对XML文件解析方式之一_SAX

    SAX(org.xml.sax) Simple API for XML,以事件的形式通知程序,对Xml进行解析.   SAX技术的介绍:SAX是一种以事件驱动的XML api,由它定义的事件流可以指定 ...

  8. 黑马day01 xml 的解析方式

    XML编程:利用java程序去增删改查(CRUD)xml中的数据 解析思想: dom解析 sax解析 基于这两种解析思想市面上就有了非常多的解析api sun jaxp既有dom方式也有sax方式,而 ...

  9. XML的解析方式(Java)

    dom方式解析 根据XML的层级结构在内存中分配一个树形结构,把XML的标签.属性和文本都封装成对象 优点:如果很方便实现增删改操作 缺点:如果文件过大,会造成内存溢出   sax方式解析 采用事件驱 ...

  10. :Android网络编程--XML之解析方式:SAX

    任何放置在资源(res)目录下的内容可以通过应用程序的R类访问,这是被Android编译过的,而任何放置在资产(assets)目录下的内容会保持它的原始文件格式,为了读取它们,必须使用AssetMan ...

随机推荐

  1. class类加载机制

    1.类的加载过程 a.加载-链接-初始化-使用-卸载 加载: 查找并加载类的二进制数据 链接: 验证类的正确性,为类的静态变量分配内存,并将其初始化为默认值,把类的符号引用转换为直接引用. 初始化: ...

  2. oracle rac cache fusion

    转载自 http://blog.csdn.net/tianlesoftware/article/details/6534239 Introduction This post is about orac ...

  3. Clojure:日期操作方法

    ;; 日期格式转换 (def df (java.text.SimpleDateFormat. "yyyy-MM-dd hh:mm:ss")) ;; 字符串转换到日期 (defn s ...

  4. Python获取当前系统时间

    Python获取当前系统时间 import time #返回当前时间 def GetNowTime():     return time.strftime("%Y-%m-%d %H:%M:% ...

  5. 怎样用Android Studio打多包名APK

    问题:项目中不同的分发渠道可能须要打包多种APK(相同的代码),包名可能是不一样的,假设一个一个改动包名又一次编apk是非常麻烦,能够參考下列步骤在Android Studio上操纵Gradle来打包 ...

  6. Java UDP通信简单实现

    1.Java实现方式 1)server端 /** * UDPserver端 * */ public class UdpServer { // 定义一些常量 private final intMAX_L ...

  7. 虚拟化(四):vsphere高可用功能前提-共享存储搭建

    虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能 ...

  8. Mongodb---记一次事故故障

    2014.06.19.001---故障报告 事故发生时间 事故简述 事故责任方 是否解决 19:21-20:15 IISserverD盘即将溢出 是 一.事故描写叙述: 在19:21收到警报.显示II ...

  9. 2014.8.12-AKKA和Actor model 分布式开发环境学习小结

    学习使用AKKA 断断续续有一年了. 眼下还是习惯用java来写akka以下的程序.对于原生的scala还是没有时间和兴趣去学习它. 毕竟学习一门语言须要兴趣和时间的. AKKA学习资源还是不算丰富. ...

  10. 人见人爱A+B(杭电2033)

    /*人见人爱A+B Problem Description HDOJ上面已经有10来道A+B的题目了,相信这些题目以前是大家的最爱,希望今天的这个A+B能给大家带来好运.也希望这个题目能唤起大家对AC ...