例如

<bkk>
<rp fe="few" > <fe>fff</fe>
</rp>
</bkk>
对于fe这个元素,innerxml是fff,outerxml是<fe>fff</fe>。
innerxml仅包括元素内容,outerxml是整个元素
-------------------------------------------------------------------------------
XML文件
<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文件路径:

string myXmlFilePath = "E:\\U-Shop.xml";

建立XML文件:

//生成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());
} }

一般还要加上声明,不然会出错:

XmlDocument xmldoc = new XmlDocument();
XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmldecl);
XmlElement xmlelement;
xmlelement = xmldoc.CreateElement(strRoot);//根节点
xmldoc.AppendChild(xmlelement);

读取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[];
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所在节点以及所包含的子节点的标签结构、属性、值(包含所在节点);

 

OuterXml和InnerXml的更多相关文章

  1. OuterXml和InnerXml(2)

    官方例子:https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.outerxml.aspx using System; using S ...

  2. 使用vs2010创建、发布、部署、调用 WebService

    原文地址:使用vs2010创建.发布.部署.调用 WebService作者:吴超 一 使用vs2010创建 WebService 1 打开VS2010,菜单    文件->新建->项目2 ...

  3. xml去除指定节点,保留子节点操作

    现有xml文件: <?xml version="1.0" encoding="utf-8" ?> <ShiftConfig xmlns:xsi ...

  4. innerXml,outerXml,innerText的不同

    原文:innerXml,outerXml,innerText的不同 昨天看到咱们园子里有一个仁兄写的关于xml的有关操作,在读的过程中,由于是初学者有不明白的地方就查资料,发现自己多innerXml, ...

  5. innerxml and outerxml

    xml文件如下 <root> <a></a> <b></b> <c></c> <a></a> ...

  6. 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...

  7. C# 调用webservice 几种办法(转载)

    原文地址: http://www.cnblogs.com/eagle1986/archive/2012/09/03/2669699.html //=========================== ...

  8. C# WebServices中处理XML方式

    1.企业系统集成的时候,大量的字段是很麻烦处理的,用Format 的方式可快速处理 string sql = @"SELECT * FROM table WHERE TASKID='&quo ...

  9. 调用webservice 总结

    最近做一个项目,由于是在别人框架里开发app,导致了很多限制,其中一个就是不能直接引用webservice . 我们都知道,调用webserivice 最简单的方法就是在 "引用" ...

随机推荐

  1. jupyter notebook添加环境

    列出当前kernel: jupyter kernelspec list 删除已有环境:jupyter kernelspec remove NAME 安装新kernel ipython kernel i ...

  2. mybatis查询出字段为null,但是sql查出来有值

    mybati 查出字段值为null, 然而相同的sql查出字段确实有值 原因: 在接受对象中使用了继承 :也就是说继承类与父类都定义了这个属性 ,字段重复,删除子类属性即可

  3. Java 虚拟机JVM

    定义 Java Virtual Machine:Java程序的运行环境(Javae二进制字节码的运行环境),相比C++有以下好处: 一次编写,到处运行 自动内存管理,垃圾回收功能 数组下标越界检查 多 ...

  4. pyqt5-橡皮筋控件QRubberBand

    提供一个矩形或线来指示选择或边界 一般结合鼠标事件一同协作 继承于 QWidget import sys from PyQt5.QtWidgets import QApplication, QWidg ...

  5. python-第三方包的安装和升级和卸载

    安装源: 豆瓣   http://pypi.douban.com/simple/ 本地安装: egg文件:  使用settools自带的安装脚本easy_install进行安装 whl文件:      ...

  6. linux运维、架构之路-禅道环境搭建

    一.介绍            禅道项目管理软件是国产的开源项目管理软件,专注研发项目管理,内置需求管理.任务管理.bug管理.缺陷管理.用例管理.计划发布等功能,实现了软件的完整生命周期管理. 禅道 ...

  7. 接口返回[object,Object]解决方法

    1.我们请求接口时有时会返回[object,Object],[object,Object],[object,Object].... 这个我们使用JSON.stringfity(data),就可以解决.

  8. ASP:CheckBox获取前台的checked的属性

    后台代码: for (int i = 0; i < this.GvCourses.Rows.Count; i++) { CheckBox chb = this.GvCourses.Rows[i] ...

  9. Java 内存屏障

    内存屏障(Memory Barrier,或有时叫做内存栅栏,Memory Fence)是一种CPU指令,用于控制特定条件下的重排序和内存可见性问题.Java编译器也会根据内存屏障的规则禁止重排序. 内 ...

  10. Android检测WIFI连接、提示框延时消失

    Android检测系统WIFI是否连接?如没有连接,显示提示框,提示进行设置,当点击设置进入系统WIFI界面后1秒钟,提示框自动消失. 代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 ...