第二篇 -- C#中对XML操作
一、XML文件操作中与.Net中对应的类
微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现。
以下给出XML文档的组成部分对应.NET中的类:
XML文档组成部分 | 对应.net中的类 |
处理指令 | XmlProcessingInstruction |
专指元素节点 | XmlElement |
属性 | XmlAttribute |
文本节点 | XmlText |
节点 | XmlNode |
文档 | XmlDocument |
XmlWriter 对象的特性 | XmlWriterSettings |
注释 | XmlComment |
二、Xml文档各种处理类
1、XmlNode节点类:包括元素节点、文本节点、属性节点等等。
这个类可以说是.Net Xml操作的根基,大部分Xml操作类都继承自此类。很多类都重写了该类的方法等。
这个类成员属性,方法都很多,但是都是非常简单的,无非是对Xml文档的添加,修改,查询,保存等操作。因此,直接通过看MSDN就足够:
XmlNode:http://msdn.microsoft.com/zh-cn/library/system.xml.xmlnode_members(v=vs.80).aspx
另外,基本上,所有类都继承于此类,都大同小异。
2、XmlElement继承了XmlNode,专指元素节点。
XmlElement的特点:
- XmlElement继承自XmlLinkedNode又继承自XmlNode类。
- XmlElement专指元素节点,Xml节点有多种类型:属性节点、注释节点、文本节点、元素节点等。也就是XmlNode是这多种节点的统称。
- XmlElement是具现类,可以直接实例化,而XmlNode是抽象类,必须通过XmlDocument的某些方法返回。
本处仅仅写个最简单的示例:
示例Xml文档:
<?xml version="1.0" encoding="gb2312" ?>
<Article>
<author age="30">张三</author>
<length>12000</length>
<price>42</price>
</Article>
简单示例:
![](http://common.cnblogs.com/images/copycode.gif)
static void Main(string[] args)
{
//XmlDocument
XmlDocument doc = new XmlDocument();
doc.Load(@"D:\Articles.xml"); //XmlNode出场
XmlNode node = doc.SelectSingleNode("Article");
string author = node.FirstChild.InnerText;
Console.WriteLine(author); //输出 张三 //XmlElement出场
XmlElement element = doc.DocumentElement; //根元素节点
Console.WriteLine(element.Name); //XmlAttribute出场
XmlAttribute attribute = element.FirstChild.Attributes[]; //输出30
Console.WriteLine(attribute.Value); //XmlComment出场
XmlComment comment = doc.CreateComment("这是字数!");
element.PrependChild(comment); doc.Save(@"D:\123123.xml"); Console.ReadKey();
}
![](http://common.cnblogs.com/images/copycode.gif)
出处:https://www.cnblogs.com/kissdodog/archive/2013/02/24/2924227.html
第二篇 -- C#中对XML操作的更多相关文章
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- 从零开始使用git第二篇:git的日常操作
从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...
- 第二篇 Flask 中的 Render Redirect HttpResponse
第二篇 Flask 中的 Render Redirect HttpResponse 1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返 ...
- Flask最强攻略 - 跟DragonFire学Flask - 第二篇 Flask 中的 Render Redirect HttpResponse
1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返回字符串 2.Flask中的Redirect 每当访问"/redi" ...
- Android学习笔记(第二篇)View中的五大布局
PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念 view是什么呢?我们已经知道一个Act ...
- 【python游戏编程之旅】第二篇--pygame中的IO、数据
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇中,我们介绍了pygame的入门操作http://www.cnblogs.com/msxh/p/49 ...
- hive第二篇----hive中partition如何使用
一.背景 1.在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念. 2.分区表指的是在创建表 ...
- [j2ee]java中的xml操作
一.XML简单介绍 xml是可扩展标记语言,主要用来标记数据.定义数据类型,很适合万维网传输. xml特点: xml是一种标记语言.非常类似HTML xml的设计宗旨是数据传输,而不是显示数 ...
- Java中的XML操作
1.DOM方式解析(读取)XML文件 待解析(读取)的XML文件,直接放在项目根目录下即可 <?xml version="1.0" encoding="UTF-8& ...
随机推荐
- ORM之Dapper
ORM之Dapper 一.下载安装: nuget 搜索dapper安装 二.使用: 三.优缺点: 优点: 1.开源.轻量.单文件(代码就一个SqlMapper.cs文件,编译后就40K的一个很小的Dl ...
- c++篇 cad.grx 入门,手动配置编译环境
安装vs2010+sp1补丁; 安装浩辰2018(64位版本); 下载浩辰Grx开发的SDK,注意对应版本年份., 解压到E盘目录下, E:\grxsdk 在他们的官方用户群下载,搜sdk, 找到gr ...
- 3 Linux性能优化之 CPU上下文
- Laravel集成Swoole教程
1.准备工作 安装 Laravel laravel new laravel-swoole 本人使用 valet 进行开发,可以使用 laravel-swoole.test 进行访问 2 ...
- IScroll中div点击事件触发两次解决办法
1.网上的同学说的,直接修改源代码,但是这种方法可能会影响到现有的程序. 搜索onBeforeScrollStart方法,将其中的preventDefault禁止掉搜索_end方法,将其中模拟clic ...
- laravel 查询随机数据
laravel 中 随机搜索数据 $tweet = Tweet::where('id',$id) ->orderBy(\DB::raw('RAND()')) ->take(1) -> ...
- 7、VUE事件
1.事件处理 Vue.js使用v-on指令监听DOM事件来触发JS回调函数. V-on: 缩写为 @ 事件回调函数可以传入$event这个事件对象. 2.事件修饰符 在事件处理程序中调用event.p ...
- c#结束练习题
1.输入一个秒数,输出对应的小时.分钟.秒. 例:输入“4000“(秒),输出“1小时6分40秒”. 2.计算1-1/2+1/3-1/4+...-1/100的值. 3.写一个函数,对一个一维数组排序. ...
- Zookeeper学习笔记:简单注册中心
zookeeper可以作为微服务注册中心,spring cloud也提供了zookeeper注册中心的支持. 本文介绍如何实现一个简单的zookeeper注册中心,主要的实现方式: n个服务提供者对外 ...
- dubbo循序渐进 - Jenkins自动化部署
最新版安装docker pull jenkinsci/jenkins sudo chown -R 1000:1000 ~/jenkins docker run -d -p : -m 1024m -v ...