.Net 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>
简单示例:

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

.Net XML操作 <第二篇>的更多相关文章
- 初学Python——文件操作第二篇
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
- XML基础<第一篇>
一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...
- 第二篇 -- C#中对XML操作
一.XML文件操作中与.Net中对应的类 微软的.NET框架在System.xml命名空间提供了一系列的类用于Dom的实现. 以下给出XML文档的组成部分对应.NET中的类: XML文档组成部分 对应 ...
- 深入理解javascript对象系列第二篇——属性操作
× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对 ...
- 小白两篇博客熟练操作MySQL 之 第二篇
小白两篇博客熟练操作MySQL 之 第二篇 一. 视图 视图是一个虚拟表,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集, 并可以将其当做表来使用. s ...
- 从零开始使用git第二篇:git的日常操作
从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...
- Django之模型层第二篇:多表操作
Django之模型层第二篇:多表操作 一 表关系回顾 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息 ...
- 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析
[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...
- 第二篇 界面开发 (Android学习笔记)
第二篇 界面开发 第5章 探索界面UI元素 ●The Android View Class ●△Widget设计步骤 需要修改三个XML,以及一个class: 1)第一个xml是布局XML文件 ...
随机推荐
- USACO5.4-Character Recognition
题目大意是字符串识别一道细节很繁琐的DP,要用到很多数组一开始还真看不出是DP,后来参考了别人的代码,然后又按自己的思路重头到尾写了,虽然速度不咋的 Executing... Test 1: TEST ...
- [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)
题目大意 给定两个n阶方阵,方阵B的行i能匹配方阵A的行j当且仅当在第一个方阵中用行向量i替换行向量j后,第一个方阵满秩,显然这是个二分图匹配问题,问是否存在完美匹配,如果存在,还要输出字典序最小的方 ...
- Day56
今天干啦啥呢 早上七点起来 天气冷了真起不来啊 再坚持坚持就好了 今天上午九点开始考数据库 我去 大学四年第一次感觉到这样的爽 作弊的爽啊 也没有完全的作弊啦 是开卷考试,反正做的很顺利了. 我和胡 ...
- 基本NT式驱动代码结构
#include <ntddk.h> void DriverUnload(IN PDRIVER_OBJECT DriverObject);NTSTATUS MyCreateClose(IN ...
- python3-day3(内置函数)
1.内置函数 1>print(bytearray('王',encoding='utf8')) 2>print(bytes('王',encoding='utf8')) 3>bool(' ...
- iOS 原生二维码扫描,带扫描框和扫描过程动画
在代码中使用了相对布局框架Masonry 准备两张图片,一张是扫描边框,一张是扫描时的细线分别命名 scanFrame.png和scanLine.png并提前放入工程 导入相对布局头文件 #defin ...
- pyqt时间
# -*- coding: utf-8 -*-__author__ = 'Administrator'from PyQt4 import QtCore, QtGui class Help(QtGui. ...
- java.lang.NoSuchFieldError: deferredExpression解决
java.lang.NoSuchFieldError: deferredExpression这个问题的出现是在的lib下面有多个版本的jstl.jar包,解决办法很简单,只留下一个版本的jstl ...
- 照猫画虎学gnuplot之简单介绍
简单介绍:Gnuplot是一个命令行驱动的科学画图工具,可将数学函数或数值资料以平面图或立体图的形式画在不同种类终端机或画图输出装置上. 它是由Colin Kelley 和 Thomas Willia ...
- ibatis之##与$$的 使用
/** 主要讲一下ibatis中$$的使用: 是为了传递参数; 参数一定在Action层用''包裹起来: */ List <SysRole> userList= systemService ...