例如

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

 

最新文章

  1. jQuery 自带的动画效果
  2. php调用COM组件
  3. SharePoint 2013 安装中间出错了怎么办? 每一次安装都是一段曲折的路【1603(0x643) 】
  4. CLR via C# 3rd - 03 - Shared Assemblies and Strongly Named Assemblies
  5. Linux守护进程实现程序只运行一次
  6. .call()和.apply()相同点与不同点
  7. Team Foundation Server 2015使用教程--读取器tfs组的checkin权限修改
  8. 兼容主流浏览器的js原生函数封装
  9. 认识cpu、核与线程
  10. SLB vs CLB
  11. openstack操作之一 命令行
  12. javascript属性访问表达式
  13. InfluxDB介绍
  14. 支付宝支付demo(亲测)
  15. mysql 数据库的数据类型
  16. PySide2兼容PySide1的补丁代码
  17. Digital Twin的8种解读!
  18. C#中,Json的序列化和反序列化的几种方式总结
  19. as3 AIR 添加或删除ApplicationDirectory目录下文件
  20. php 实现繁体转简体代码效率对比

热门文章

  1. Linux-date函数
  2. 洛谷 P2866 [USACO06NOV]糟糕的一天Bad Hair Day 牛客假日团队赛5 A (单调栈)
  3. codeforces 108D Basketball Team(简单组合)
  4. Codeforces 959 树构造 暴力求最小字典序互质序列
  5. Java并发-CycliBarrier
  6. Zookeeper学习笔记(下)
  7. git-bash下, 启动sshd
  8. Delphi-----接口请求,Get与Post
  9. TinyMCE不可编辑
  10. ubuntu16.04 下 C# mono开发环境搭建