C#XML操作详解
添加引用
using System.Xml;
创建XML文件
XmlDocument xmldoc=new XmlDocument();
//加入XML的声明段落:<?xmlversion="1.0" encoding="utf-8"?>
XmlDeclaration xmldecl=xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xmldecl);
//保存创建好的XML文档
xmldoc.Save(@"D:\user.xml");
加载XML文件
//方法一:Lode方法加载的是XML文件所在的路径
xmldoc.Load(@"D:\user.xml");
//方法二:LoadXml方法加载的是XML字符串
xmldoc.LoadXml("<user></user>");
创建节点
//创建根节点
XmlElement xmlroot = xmldoc.CreateElement("user");
xmldoc.AppendChild(xmlroot);
//创建根节点的子节点
XmlElement ePerson=xmldoc.CreateElement("person");
xmlroot.AppendChild(ePerson);
获取节点
//获取根节点
XmlElement root = xmldoc.DocumentElement;
//获取单个节点:如果有筛选到多个符合条件的,默认选第一个
XmlNode node=xmldoc.SelectSingleNode("user");//方法一:获取标签名为:user的节点
XmlNode node=xmldoc.SelectNodes("user").Item();//方法二:这种方法需要了解节点排列顺序才可以准确的获取想要的节点
XmlNode node=xmldoc.SelectSingleNode("user/person[@name='王五']")//方法三:指定了属性,进一步筛选
//获取该路径下所有节点的集合
XmlNodeList nodelist=xmldoc.SelectNodes("user/person");//方法一:获取user节点下的person节点集合
XmlNodeList nodelist=xmldoc.SelectSingleNode("user").ChildNodes;//方法二:获取user节点下的所有子节点
XmlNodeList nodelist=xmlroot.GetElementsByTagName("person")//方法三:获取根节点下的标签名为person的节点集合
//遍历节点
foreach(XmlNode childNode in nodelist)
{
Response.Write(childNode .Name);
}
删除节点
//删除其下所有节点和其本身的属性以(只剩下标签)
xmlroot.RemoveAll();
//删除指定节点,括号里传入的是节点名
xmlroot.RemoveChild(person);
设置属性以及文本节点
//方法一
person.SetAttribute("name","张三");
//方法二:这种方法可以用来获取和设置属性值,但前提是该属性要存在
person.Attributes["name"].Value = "张三三";
//方法三
XmlAttribute age = xmldoc.CreateAttribute("age");
age.Value = "";
person.Attributes.Append(age);
//设置文本节点
person.InnerText = "";
获取属性值
//方法一
string name=person.Attributes["name"].Value.ToString();
//方法二
string name=person.GetAttribute("name").ToString();
//方法三:XmlNode.SelectSingleNode()方法中,节点名加@表示查找属性,但最后要转成(XmlAttribute)
XmlAttribute xa = (XmlAttribute)person.SelectSingleNode("@" + name);
string name=xa.Value.ToString();
删除属性
//方法一:删除指定属性
person.RemoveAttribute("age");
//方法二:删除某个位置的属性(需要了解属性的顺序)
person.RemoveAttributeAt();
//方法三:删除所有属性
person.RemoveAllAttributes();
XmlNode和XmlElement比较
XmlElement是XmlNode的子类。
Xml节点有多种类型:属性节点、注释节点、文本节点、元素节点等。XmlNode是这多种节点的统称,但是XmlElement专门指的就是元素节点。
XmlElement是具现类,可以直接实例化,而XmlNode是抽象类。
C#XML操作详解的更多相关文章
- [转]AndroidManifest.xml文件详解
转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml ...
- Maven pom.xml文件详解
Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...
- AndroidManifest.xml文件详解(uses-permission)
语法(SYNTAX): <uses-permissionandroid:name="string"/> 被包含于(CONTAINED IN): <manifest ...
- c3p0-config.xml模板详解
c3p0-config.xml模板详解 <c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.De ...
- maven - settings.xml文件详解
Settings.xml配置文件详解 maven默认的settings.xml是一个包含注释和例子的模板,可以快速的修改settings.xml文件 maven安装后不会在用户目录下自动生成setti ...
- 【maven学习】pom.xml文件详解
环境 apache-maven-3.6.1 jdk 1.8 eclipse 4.7 POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示, ...
- Web.xml配置详解(转)
Web.xml配置详解 Posted on 2010-09-02 14:09 chinaifne 阅读(295105) 评论(16) 编辑 收藏 1 定义头和根元素 部署描述符文件就像所有XML文件一 ...
- SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...
- Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解
封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...
随机推荐
- hdu 5199 Gunner(STL之map,水)
Problem Description Long long ago, there is a gunner whose name is Jack. He likes to go hunting very ...
- Eidtplus常用快捷键
文件 新建普通文本 Ctrl+N 新建普通的文本文档 新建浏览器窗口 Ctrl+Shift+B 新建浏览器窗口 新建 HTML 页 Ctrl+Shift+N 创建一个空白的 HTML 页面 打开 Ct ...
- mahout源码分析之Decision Forest 三部曲之二BuildForest(1)
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. BuildForest是在mahout-examples-0.7-job.jar包的org\apache ...
- 【线段树求逆序数】【HDU1394】Minimum Inversion Number
题目大意: 随机给你全排列中的一个,但不断的把第一个数丢到最后去,重复N次,形成了N个排列,问你这N个排列中逆序数最小为多少 做法: 逆序数裸的是N^2 利用线段树可以降到NlogN 具体方法是插入一 ...
- Oracle 启用块跟踪
Oracle 启用块跟踪,语法示例如下: alter database enable block change tracking using file '/u01/app/oracle/oradata ...
- iOS设计模式解析(六)代理模式
代理模式:为其他对象创建一个代理以控制对这个对象的访问 UML解释:客户端向Proxy发起一个Request()请求,Proxy对象会把这个Request转发给Proxy对象的RealSubject. ...
- iOS极光推送
昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...
- JAVA 8 新特性和改进
Java 8的所有新特性及改进包括(JEP全称为JDK Enhancement Proposal,JDK改进建议): 语言改进: JEP 126:Lambda表达式 & 虚拟扩展方法 JEP ...
- cURL模拟POST方法提交XML数据并解析
php编程中会用到xml格式传送数据,这里演示下php以post形式发送xml,服务器接收,并解析xml的过程! post_xml.php源码: <?php header("Conte ...
- JDK常见问题 环境变量配置
"javac不是内部命令或外部命令" Windows7 安装"jdk-6u26-windows-x64.exe"后,常提示"javac不是内部命令或外 ...