C# 对XML基本操作总结
C# 对XML基本操作包括读取节点的数据,添加节点。读取节点属性,修改节点属性等。具体如下:
XML文件:文件在MyDocument文件夹下
- <?xml version="1.0" encoding="utf-8"?>
- <PersonF xmlns="" Name="(test)work hard work smart!">
- <person Name="Person1">
- <ID>1</ID>
- <Name>XiaoA</Name>
- <Age>59</Age>
- </person>
- <person Name="Person2">
- <ID>2</ID>
- <Name>XiaoB</Name>
- <Age>29</Age>
- </person>
- <person Name="Person3">
- <ID>3</ID>
- <Name>XiaoC</Name>
- <Age>103</Age>
- </person>
- <person Name="Person4">
- <ID>4</ID>
- <Name>XiaoD</Name>
- <Age>59</Age>
- </person>
- </PersonF>
Code:说明都在注释里。
- public void TestXML()
- {
- XmlDocument doc = new XmlDocument();
- string path = "http://www.cnblogs.com/MyDocument/Person.xml";
- try
- {
- //doc.Load(Server.MapPath()
- doc.Load(path);
- //1、读取单个节点的数据
- XmlNode node = doc.SelectSingleNode("PersonF");
- //2、读取多个节点的数据
- XmlNodeList nodeList1 = doc.SelectNodes("PersonF/person");
- //3.1 读取具体节点的具体值 如:属性为Person2的第二个节点Name的InnerText
- XmlNodeList nodeList = doc.DocumentElement.GetElementsByTagName("person");
- foreach (XmlNode node2 in nodeList1) //当然也能用nodeList的值
- {
- if (node2.Attributes["Name"].InnerText == "Person2")
- {
- Console.WriteLine(node2.ChildNodes[1].InnerText);
- }
- }
- //3.2 读取ID为2所在的节点第二个子节点Name的InnerText
- XmlNode node3 = doc.SelectSingleNode("PersonF/person[ID=2]");
- string strNode3 = node3.ChildNodes[1].InnerText;
- //3.3利用下面的方法可以找到ID为2的节点
- XmlNodeList nodeList2 = doc.SelectNodes("//person//ID");
- XmlNode node4 = null;
- foreach (XmlNode node5 in nodeList2)
- {
- if (node5.InnerText == "2")
- {
- node4 = node5;
- break;
- }
- }
- Console.WriteLine(node4.InnerText);
- //4、读取节点的属性
- string Name = node.Attributes["Name"].InnerText;
- //5 修改节点的属性
- node.Attributes["Name"].InnerText = "work hard work smart!";
- doc.Save(path);
- //6 添加自定义的节点
- XmlTextReader reader = new XmlTextReader(path);
- XmlElement root = doc.DocumentElement;//获取根节点
- XmlElement tagOuter = doc.CreateElement("person");
- //设置节点属性
- tagOuter.SetAttribute("Name", "Person5");
- XmlElement tagIN_Name = doc.CreateElement("Name");
- XmlElement tagIN_ID = doc.CreateElement("ID");
- tagIN_Name.InnerText = "work hard work smart!";
- tagIN_ID.InnerText = "32";
- tagOuter.AppendChild(tagIN_Name);
- tagOuter.AppendChild(tagIN_ID);
- root.AppendChild(tagOuter);//添加tagOuter到XML文件的最后
- reader.Close();
- doc.Save(path);
- }
- catch (System.Exception e)
- {
- throw new Exception(e.Message);
- }
- }
C#操作xml SelectNodes,SelectSingleNode总是返回NULL 与 xPath 介绍
C#中用SelectSingleNode方法解析带有多个命名空间的XML文件
原文链接:http://www.cnblogs.com/linlf03/archive/2011/10/10/2205896.html
C# 对XML基本操作总结的更多相关文章
- boost::xml——基本操作以及中文乱码解决方案
下面是本人使用boost库的xml部分的基础操作,并且解决对于大家使用boost库读写中文xml内容出现的乱码问题. 1.实现boost库xml基本操作2.解决boost对xml中中文乱码问题3.实现 ...
- boost::xml——基本操作以及中文乱码解决方案 (续)
本博文主要想说明以下两点: 1.对于上一篇的<boost::xml——基本操作以及中文乱码解决方案>解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题 ...
- xml基本操作和保存配置文件应用实例
引言:在实际项目中遇到一些关于xml操作的问题,被逼到无路可退的时候终于决定好好研究xml一番.本文首先介绍了xml的基本操作,后面写了一个经常用到的xml保存配置文件的实例. xml常用方法: 定义 ...
- xml基本操作
在实际项目中遇到一些关于xml操作的问题,被逼到无路可退的时候终于决定好好研究xml一番.xml是一种可扩展标记语言,可跨平台进行传输,因此xml被广泛的使用在很多地方. 本文由浅入深,首先就xml的 ...
- linq to xml 基本操作
使用XDocument类来进行简单的xml操作,用于软件参数的设置保存. using System; using System.Collections.Generic; using System.Li ...
- LINQ to XML基本操作
Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作. LINQ to XML 三个最重要类:XElement.XAt ...
- linq to xml学习
http://www.cnblogs.com/greatverve/archive/2010/07/09/linq-to-xml-add-delete-update-query.html 记录一下,别 ...
- JAVA中通过Jaxp操作XML文件基础
Java中有多种方式操作XML文件,目前讲一讲以SUN公司提供的DocumentBuilderFactory工厂类对象操作XML. 使用XML基本操作就是需要CRUD(增删改查),那么首先通过一个查询 ...
- 【原创】日志文件清理工具V1.0
最近公司的系统服务器经常出现磁盘空间不足的情况,登陆服务器发现原来是公司的HR系统日志造成的(插个话题:我们公司的HR系统都实施两年多了还没上线,且不说软件功能如何,服务太TMD差劲了,更可气的是软件 ...
随机推荐
- 【思路题】【多校第一场】【1001.OO’s Sequence】
题目大意: 给你一个序列A,f(l,r) 表示 在[l,r]中 的Ai 对于每一个数Aj 都有 Ai%Aj!=0 的数目( i!=j ) 卡了一段时间..... 题解 简单题 定义两个数组L[i ...
- Paxos算法深入分析
在分布式系统设计领域,Paxos可谓是最重要一致性的算法.Google的大牛们称 All working protocols for asynchronous consensus we have ...
- PHP学习笔记十三【二维数组】
<?php //二维数组 $arr=array(array(1,2,3),array(4,5,6)); $arr1[0]=array(12,34,65); $arr1[1]=array(34,6 ...
- PHP搭建(windows64+apache2.4.7+mysql-5.6+php5.5)
现在大部分一键安装包多是32位的,并不支持64位,直接在64位的系统上使用会报错的,所以我这里就来说说windows 64位系统如何建立Apache+PHP+MySQL环境的! 我这里演示用的wind ...
- HTML5图形绘制学习(1)-- Canvas 元素简介
Canvas元素是HTML5中新增的一个专门用来进行图形绘制的元素.和其名称Canvas一样,它就相当于一个画布,我们可以在其上描绘各种图形. 这里所说的绘制图型,不是指我们可以进行可视化的图形绘制, ...
- 构建混合云:配置Azure site to site VPN连接(1)
用户在构建自己云计算解决方案的时候,往往会选择私有云或者公有云来做部署,但在一些场景下,用户更加希望通过混合云的方案来满足自己的业务需求.Azure为混合云的部署提供多种不同的连接方案,最常见的是 ...
- 第3.3.4节 创建高级图形之RenderScript(二)
Android视图框架对于创建复杂布局非常方便.然而,这种便利是以性能为代价的.当性能至关重要的时候,Android提供了几种更强大的图形处理能力,当然难度也是随之上升了.在本节中,我将介绍: ...
- __stdcall,__cdecl,_cdecl,_stdcall,。__fastcall,_fastcall 区别简介
1. 今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter); 不解为什么要用WINAPI宏定义,查 ...
- [x-means] 1.x-means简介
本文基于<X-means>和<BIC-notes>(原论文中BIC公式有误,这是对BIC的补充) K-means的缺点 每一轮迭代的计算花费大 需要用户指定K 易于收敛到局部最 ...
- firefox必备扩展
1.首先,当然要推荐 Adblock Plus 安装地址:https://adblockplus.org/zh_CN/firefox 作用:屏蔽广告,从此和该死的广告说拜拜吧(不论是百度推广,还是别的 ...