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差劲了,更可气的是软件 ...
随机推荐
- javax inect
Spring 3 and JSR-330 @Inject and @Named example By mkyong | September 16, 2012 | Viewed : 86,399 tim ...
- VC++深入详解读书笔记-第七章对话框
1.在MFC中,所有的控件类都是由CWnd类派生来的,因此,控件实际上也是窗口. 2. 3.对话框的种类 模态对话框 模态对话框是指当其显示时,程序会暂时执行,直到关闭这个模态对话框后,才能继续执行程 ...
- Long,String类型的两个值进行比较,注意点!!!
一: . Long 类型指的是 java.util.Lang 对象,而不是基本类型 long (注意大小写)Java中如果使用 == 双等于比较对象,等于比较的是两个对象的内存地址,也就是比较两个对象 ...
- Apache的httpd命令详解
Apache的httpd命令详解 来源:全栈开发者 发布时间:2012-01-03 阅读次数:10965 4 httpd.exe为Apache HTTP服务器程序.直接执行程序可启动服务器的服务. ...
- div+css+javascript 走马灯图片轮换显示
效果如图 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- bzoj 1188 : [HNOI2007]分裂游戏 sg函数
题目链接 给n个位置, 每个位置有一个小球. 现在两个人进行操作, 每次操作可以选择一个位置i, 拿走一个小球.然后在位置j, k(i<j<=k)处放置一个小球. 问你先进行什么操作会先手 ...
- shell基础——字符串处理(转载)
Shell的字符串处理 1 得到长度 %x="abcd" #方法一 %expr length $x 4 # 方法二 %echo ${#x} ...
- logcat错误日志
http://www.crifan.com/android_log_to_file/ http://www.iteye.com/problems/85431 http://www.cnblogs.co ...
- mysql数据损坏修复方法
1.myisamchk使用 myisamchk 必须暂时停止 MySQL 服务器.例如,我们要检修 discuz 数据库.执行以下操作:# service mysql stop (停止 MySQL ) ...
- 安全运维之:Linux系统账户和登录安全(转)
三.删减系统登录欢迎信息 系统的一些欢迎信息或版本信息,虽然能给系统管理者带来一定的方便,但是这些信息有时候可能被黑客利用,成为攻击服务器的帮凶,为了保证系统的安全,可以修改或删除某些系统文件,需要修 ...