innerXml,outerXml,innerText的不同
原文:innerXml,outerXml,innerText的不同
昨天看到咱们园子里有一个仁兄写的关于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 =”
理解:包含根节点标签在内的xml结构“
innertext :可以把这个单词分开进行理解,分开就是inner和text,inner就是里面的意思,这里我们可以理解为不包含本节点,即innertext所在节点的子节点,text就是文本的意思,所以innertext不会出现标签,整体理解就是innertext所在节点所包含的子节点的值;

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

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

由于个人习惯,这里所写的”节点“皆是指xml中的”标签“,见谅!
源代码:下载
innerXml,outerXml,innerText的不同的更多相关文章
- xml文件格式说明
转载自:http://www.cr173.com/html/10715_1.html 关于xml的有关操作,在读的过程中,由于是初学者有不明白的地方就查资料,发现自己多innerXml,outerXm ...
- .Net中XML,JSON的几种处理方式
一.XML: 1.基本了解: xml,Extensible markup language可扩展标记语言,用于数据的传输或保存,特点,格式非常整齐数据清晰明了,并且任何语言都内置了xml分析引擎, 不 ...
- xml基础总结
可扩展的标记语言(eXtensible Markup Language) 优点:容易读懂:格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写. 用普通二进制传输数据的缺点,解析方式 ...
- OuterXml和InnerXml
例如 <bkk> <rp fe="few" > <fe>fff</fe> </rp> </bkk> 对于fe ...
- innerxml and outerxml
xml文件如下 <root> <a></a> <b></b> <c></c> <a></a> ...
- OuterXml和InnerXml(2)
官方例子:https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.outerxml.aspx using System; using S ...
- XmlNode中Value和InnerText的区别
XmlNode中Value和InnerText的区别 这个问题我想很多人在使用.NET 操作 Xml 文档时都遇到过,先看一下MSDN里对这两个属性的解释: XmlNode.Value:获取或设置 ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- innerHTML和innerText的区别
以<p id="example">welcome to <strong>JavaScript</strong> !!!</p>为例: ...
随机推荐
- Ural 1086 - Cryptography
While preparing this problem set the jury has run into the following problem: it was necessary to se ...
- form的验证用法
models.py forms.py html页面 第二种方法: 不继承model直接自定义内容 获得内容: if form.is_valid(): price = reques ...
- SDRAM 控制器的解析
本篇博文非原创,是整理了网上的各家之言与一体,为自己以后方便查询所用.如有冒犯请告之. 1.Precharge与Refresh的区别? plj:两者都是对存储单元的电容进行充电.回写.但差异在于: P ...
- docker 学习笔记21:docker连接网络的设置
1.如果docker主机不需要通过代理连接外网 则docker的相关命令(如docker search)或docker容器与网络相关的操作都可以正常进行,不需要特殊设置. 2.当docker主机 是通 ...
- 一步一步重写 CodeIgniter 框架 (11) —— 使用 CodeIgniter 函数库
在完成了CI框架的类库扩展后,很自然我们就会想到函数库的扩展.函数库的扩展在 CI 中称为 helper 函数与类有不同的地方,它不能继承,只能覆盖或者添加新的函数,或者直接完全新定义的一组函数. 由 ...
- UItableViewCell上的button点击无响应的办法
由于IOS7中添加了滑动后出现编辑按钮的操作,所以使用scrollView来处理,UITableViewCellScrollView有对触摸的相应处理,导致按钮的点击效果被屏蔽了,但是点击事件还是在的 ...
- CentOS下Samba文件服务器的安装与配置
CentOS下Samba文件服务器的安装与配置 http://blog.csdn.net/limingzhong198/article/details/22064801 一.安装配置 1. 安装sam ...
- 2015.7.17( NOI2015 day1 )
今天早起做了NOI2015网络同步赛.... 最近NOI是越来越向NOIP靠拢了....但是我还是不会做..... 第一题:程序自动分析 先离散化一下..然后最多就剩20w个数 , 不等于就存起来.. ...
- AOP编程
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Windows Store Javascript项目使用高德地图、谷歌地图、百度地图API
原文 Windows Store Javascript项目使用高德地图.谷歌地图.百度地图API 在Win8 Store 项目中可以使用的地图主要有微软的Bing Map,目前高德地图sdk也支持Wi ...