转载自:http://www.cr173.com/html/10715_1.html

关于xml的有关操作,在读的过程中,由于是初学者有不明白的地方就查资料,发现自己多innerXml,outerXml,innerXml的理解很不清楚,自己就在原有代码的上进行了部分修改(这不算侵权吧)。首先建立的xml的结构是这样子的,并命名为U-Shop:

<Teams>
<Member team="U-Shop" Description="U-Shop团队">
<name>灵动生活</name>
<position>planning</position>
</Member>
<Member team="U-Shop" Description="U-Shop团队">
<name>蓝蓝海天</name>
<position>support</position>
</Member>
<Member team="U-Shop" Description="U-Shop团队">
<name>神舟龙</name>
<position>lean</position>
</Member>
</Teams>
确定路径:

string myXmlFilePath = "E:\\U-Shop.xml";
依照此模板我们有c#代码进行建立,方法代码如下:

//生成xml 结构
private static void GenerateXMLFIL(string XMLfilePath)
{
try
{
//实例化xml文档
XmlDocument myXmlDoc = new XmlDocument();
//实例化一个根节点
XmlElement rootElement = myXmlDoc.CreateElement("Teams");
//把根节点添加到xml文档中
myXmlDoc.AppendChild(rootElement);
//创建一个一级节点
XmlElement fistLevelElement1 = myXmlDoc.CreateElement("Member");
//设置属性
fistLevelElement1.SetAttribute("team", "U-Shop");
fistLevelElement1.SetAttribute("Description", "U-Shop团队");
//将一级节点添加到根节点
rootElement.AppendChild(fistLevelElement1);
//创建二级节点
XmlElement secondLevelElement11 = myXmlDoc.CreateElement("name");
//设置二级节点的串联值
secondLevelElement11.InnerText = "灵动生活";
//把二级节点添加到一级几点
fistLevelElement1.AppendChild(secondLevelElement11);

XmlElement threeLevelElement12 = myXmlDoc.CreateElement("position");
threeLevelElement12.InnerText = "planning";
fistLevelElement1.AppendChild(threeLevelElement12);

XmlElement secondLevelElement2 = myXmlDoc.CreateElement("Member");
secondLevelElement2.SetAttribute("team", "U-Shop");
secondLevelElement2.SetAttribute("Description", "U-Shop团队");
//添加到根节点
rootElement.AppendChild(secondLevelElement2);

XmlElement secondLevelElement21 = myXmlDoc.CreateElement("name");
secondLevelElement21.InnerText = "蓝蓝海天";
secondLevelElement2.AppendChild(secondLevelElement21);
XmlElement threeLevelElement22 = myXmlDoc.CreateElement("position");
threeLevelElement22.InnerText = "support";
secondLevelElement2.AppendChild(threeLevelElement22);

XmlElement secondLevelElement3 = myXmlDoc.CreateElement("Member");
secondLevelElement3.SetAttribute("team", "U-Shop");
secondLevelElement3.SetAttribute("Description", "U-Shop团队");
//添加到根节点
rootElement.AppendChild(secondLevelElement3);

XmlElement secondLevelElement31 = myXmlDoc.CreateElement("name");
secondLevelElement31.InnerText = "神舟龙";
secondLevelElement3.AppendChild(secondLevelElement31);
XmlElement threeLevelElement32 = myXmlDoc.CreateElement("position");
threeLevelElement32.InnerText = "lean";
secondLevelElement3.AppendChild(threeLevelElement32);
//保存,重要
myXmlDoc.Save(XMLfilePath);
}
catch (Exception ex)
{

Console.WriteLine(ex.ToString());
}

}
下面的方法就是获取已经创建好的xml文件中信息,方法代码如下:

//获取xml信息
private static void GetXMLInformation(string XMLfilePath)
{
//实例化一个xml文档
XmlDocument myXmlDoc = new XmlDocument();
//加载xml文档
myXmlDoc.Load(XMLfilePath);
//获得第一个为Computers的根节点
XmlNode rootNode = myXmlDoc.SelectSingleNode("Teams");
//获取根节点中串联值
string innertext = rootNode.InnerText.ToString();

//获取根节点虽有子节点结构
string innerXmlInfo = rootNode.InnerXml.ToString();
//获取根节点在内的整个xml的结构
string outXmlInfo = rootNode.OuterXml.ToString();

//获取根节点的所有自己点

// }

XmlNodeList firstLevelNodeList = rootNode.ChildNodes;
//遍历所有子节点
foreach (XmlNode node in firstLevelNodeList)
{
string inner = node.InnerXml;
string outx = node.OuterXml;
//获取所有子节点的属性
XmlAttributeCollection attributeCol = node.Attributes;
//遍历自己点属性
foreach (XmlAttribute attri in attributeCol)
{
//获取每个节点属性的key,value值
string name = attri.Name;
string value = attri.Value;
Console.WriteLine("{0}={1}", name, value);
}
//判断子节点是否还有子节点
if (node.HasChildNodes)
{//如果有子节点则执行
//获取子节点中的第一个孩子
XmlNode secondeLevelNode1 = node.FirstChild;
//得到第一个孩子的名称
string name = secondeLevelNode1.Name;
string innetext = secondeLevelNode1.InnerText.ToString();
string outxml = secondeLevelNode1.OuterXml.ToString();
//获得第一个孩子的串联值
string innerxml = secondeLevelNode1.InnerXml.ToString();

Console.WriteLine("{0}={1}", name, innerxml);

XmlNode secondLevelNode2 = node.ChildNodes[1];
name = secondLevelNode2.Name;
innerxml = secondLevelNode2.InnerXml;
Console.WriteLine("{0}={1}", name, innerxml);

}

}
}
我们很容易获得上边代码中红色字体的值,即innertext=“灵动生活planning蓝蓝海天support神舟龙lean:“理解:根节点以下所有节点的值,innerXmlInfo =“
<Member team="U-Shop" Description="U-Shop团队">
<name>灵动生活</name>
<position>planning</position>
</Member>
<Member team="U-Shop" Description="U-Shop团队">
<name>蓝蓝海天</name>
<position>support</position>
</Member>
<Member team="U-Shop" Description="U-Shop团队">
<name>神舟龙</name>
<position>lean</position>
</Member>
理解:除根节点标签后,根节点包含的xml结构”, outXmlInfo =”

<Teams>
<Member team="U-Shop" Description="U-Shop团队">
<name>灵动生活</name>
<position>planning</position>
</Member>
<Member team="U-Shop" Description="U-Shop团队">
<name>蓝蓝海天</name>
<position>support</position>
</Member>
<Member team="U-Shop" Description="U-Shop团队">
<name>神舟龙</name>
<position>lean</position>
</Member>
</Teams>
理解:包含根节点标签在内的xml结构“

innertext :可以把这个单词分开进行理解,分开就是inner和text,inner就是里面的意思,这里我们可以理解为不包含本节点,即innertext所在节点的子节点,text就是文本的意思,所以innertext不会出现标签,整体理解就是innertext所在节点所包含的子节点的值;

innerxml:同样我们也可以把这个单词拆分进行理解,分开就是inner和xml,inner就是里面的意思,这里我们可以理解为不包含本节点,即innerxml所在节点的子节点,xml 这里可以认为是我们所写的标签,当然也包括它的属性值,所以这里理解就是innerxml所在节点所包含的子节点的标签结构;

outerxml:同样我们也可以把这个单词拆分进行理解,分开就是outer和xml,out就是外面的意思,这里我们可以理解为包含本节点,即outerxml所在节点的子节点,xml 这里可以认为是我们所写的标签,当然也包括它的属性值,所以这里理解就是outerxml所在节点以及所包含的子节点的标签结构、属性、值(包含所在节点)。

C#中看到的某个xm文件:

<root>
<version>2</version>
<name>baidu_xinwen_1.1.0</name>
<url>http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk</url>
</root>

xml文件格式说明的更多相关文章

  1. xml文件格式例如以下

    xml文件格式例如以下:     <?xml   version="1.0"   encoding="utf-8"?>         <us ...

  2. cve-2010-3333 Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 分析

    用的是泉哥的POC来调的这个漏洞 0x0 漏洞调试    Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 Microsoft Office 是微软发布的非常流行的办公 ...

  3. day6 xml文件格式的处理

        XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公 ...

  4. JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式

    JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式   数据格式: json数据格式:属于轻量级数据格式,是javascript的一种描述数据的格式.具有易于解析,语法 ...

  5. Android PackageManager packages.xml文件格式

    packages.xml文件存放在/data/system目录下    该文件记录了系统中所有应用程序的包管理相关信息    PmS根据该文件进行包管理的各种操作 标签名称 所包含的值举例 last- ...

  6. 记录一次手机联系人整理(XML文件格式处理)

    场景:1.IOS手机和Android手机联系人同步时有部分重复联系人. 2.很早以前的HTC手机导出的联系人中备注信息有大量乱码,且很多联系人生日被设置为1970-01-01,导致生日提醒软件产生骚扰 ...

  7. XML文件格式

    首行是需要对xml版本声明<?xml version="1.0" ecoding="UTF-8"?> 语言可根据需要修改 在编写xml的几个注意点 ...

  8. Androidmanifest.xml文件格式详解(转载)

    https://www.jianshu.com/p/eaaae96473f6 来自简书大佬的

  9. python模块(shelve,xml,configparser,hashlib,logging)

    1.1shelve模块 shelve 模块比pickle模块简单,只有一个open函数,返回类似字典对象,可读可写:key必须为字符串, 而值可以是python所支持的数据类型. shelve模块主要 ...

随机推荐

  1. spring-mybatis jar下载地址

    http://central.maven.org/maven2/org/mybatis/mybatis-spring/1.3.0/

  2. HRS(CRLF Injection)

    [HRS(CRLF Injection)] CRLF是”回车 + 换行”(\r\n)的简称.在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CR ...

  3. NSURLCache详解和使用

    使用缓存的目的是为了使应用程序能更快速的响应用户输入,是程序高效的运行.有时候我们需要将远程web服务器获取的数据缓存起来,以空间换取时间,减少对同一个url多次请求,减轻服务器的压力,优化客户端网络 ...

  4. 数据转移发现font有问题

    本地正常 以为是mime.types没有 但是发现是存在的  然后根据提示百度了很久都没有解决 解决: 去字体官网下载改字体文件下来 上传到服务器 发现可以正常访问 说明不是服务器的问题 有个提示 i ...

  5. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

    最近老是遇见服务器内存溢出的问题,故在网上搜了搜,总结了一些java内存溢出的解决方式 java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都 ...

  6. 手把手教你用新浪云容器 Java 搭建自己的网站

    经过一段时间的开发,更新,迭代,新浪云容器 Java 环境逐渐成熟起来,相比过去的 Java 运行环境,可用性和易用性都得到了大量的提升.同时也收到了不少用户反馈的使用问题,特此在这篇文章里综合介绍一 ...

  7. 在oracle里写各种语句得心应手,但是在mybatis.xml文件里呢?

    这个问题我让我搞了大半天,实在气人,话不多说,直接上代码 <select id="*" resultMap="Blog" parameterType=&q ...

  8. [转载]Matlab生成Word报告

    最近在进行一批来料的检验测试,一个个手动填写报告存图片太慢了,就有了种想要使用Matlab在分析完后数据可以自动生成PDF报告的想法,于是就去网上搜索了相关的资料,发现Matlab中文论坛上有xiez ...

  9. TCP、UDP协议间的区别(转)

    一.TCP/IP协议是一个协议簇.里面包括很多协议的.UDP只是其中的一个.之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了. TCP/IP协议集包括应用层,传输层 ...

  10. Python模块:collections

    collections模块常用的数据类型: (1)namedtuple(): #创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素. fr ...