ADO.NET_XML

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;using System.Xml.Schema;namespace XML{ public class XML { /// /// 验证XML文件 /// public static void ValidationXml() { //实例化XmlReaderSettings XmlReaderSettings settings = new XmlReaderSettings(); //为settings各个属性赋值,以便为验证过程做准备 settings.DtdProcessing = DtdProcessing.Parse; settings.ValidationType = ValidationType.DTD; settings.ValidationEventHandler+=new System.Xml.Schema.ValidationEventHandler(ValidationCallBack); //实例化XmlReader(参数是:包括DTD规则的文件和setting对象)注意这里使用的相对路径便于程序直接运行 XmlReader reader = XmlReader.Create("ItemDTD.XML",settings); //使用read方法读文件,同时验证XML文件是否满足DTD规则的要求,不满足要求的代码会调用ValidationCallBack方法输出到控制台 while (reader.Read()) ; Console.ReadLine(); } private static void ValidationCallBack(object sender, ValidationEventArgs e) { Console.WriteLine("Validation Error:{0}",e.Message); } /// /// 读取xml节点 /// public static void LoadXmlToDom() { //实例化XmlDocument XmlDocument doc = new XmlDocument(); //调用LoadXml方法读取XML文档字符串到DOM中 doc.LoadXml("<?xml version='1.0' encoding='utf-8'?>" + "" + "1" + "1" + "2" + "2" + "" + "" ); //将DOM信息保存到xml文件中 doc.Save("TaskInfo.xml"); Console.WriteLine("保存数据成功"); Console.ReadLine(); } /// /// 插入节点到根节点的子节点的最后一个位置上 /// public static void InsertNode() { //实例化XmlDocument XmlDocument doc = new XmlDocument(); doc.LoadXml(""+ ""+ ""); //实例化XmlNode,并从doc中获取节点元素 XmlNode root = doc.DocumentElement; //实例化XmlElement 新建节点并且赋值 XmlElement elem = doc.CreateElement("Price"); elem.InnerText = "19.95"; //调用AppendChild方法增加上面新建的节点到DOM中,调用不同方法可以往DOM中不同位置插入节点 root.AppendChild(elem); //重新实例化XmlElement 新建节点并且赋值 XmlElement elem1 = doc.CreateElement("Category"); elem1.InnerText = "文学"; //调用InsertBefore方法增加上面新建的节点到DOM中 root.InsertBefore(elem1, root.FirstChild);//LastChild,FirstChild都是针对你上面load文档而言 //将DOM信息保存到xml文件中 doc.Save("Book.xml"); Console.WriteLine("保存数据成功"); Console.ReadLine(); } public static void RemoveNode() { //实例化XmlDocument XmlDocument doc = new XmlDocument(); doc.LoadXml("" + "" + ""); //实例化XmlNode,并从doc中获取节点元素 XmlNode root = doc.DocumentElement; //用RemoveChild方法移除元素 root.RemoveChild(root.FirstChild); //将DOM信息保存到xml文件中 doc.Save("Book.xml"); Console.WriteLine("保存数据成功"); Console.ReadLine(); } /// /// 导航选中某个节点,选中其内容 /// public static void NavigateAndModifiedNode() { XmlDocument doc = new XmlDocument(); doc.Load("bookstore.xml"); //获取Dom中根节点 XmlNode root = doc.DocumentElement; XmlNodeList nodeList; //使用SelectNodes方法选择所需的节点(对应的XPath路径不同,则选择的节点集合不同) nodeList = root.SelectNodes("/descendant::book[author/last-name='Austen']"); //使用foreach循环修改所选择节点的内容 foreach (XmlNode book in nodeList) { book.LastChild.InnerText = "100"; } //将DOM内容保存到xml文件中 doc.Save("Booknew.xml"); Console.WriteLine("保存数据成功"); Console.ReadLine(); } public static void NavigateAndModifiedNode1() { XmlDocument doc = new XmlDocument(); //如果xml文件中的注释是中文的话,需要将其文本设置成中文的格式,如:“enconding=“utf-8””,这样加载都不会出错 doc.Load("Newbook.xml"); //获取Dom中根节点 XmlNode root = doc.DocumentElement; XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace("bk", "urn:Newbook-schema"); nsmgr.AddNamespace("ak", "urn:Newbook-hello"); XmlNodeList nodeList; //使用SelectNodes方法获取XPath路径的节点集合(对应的XPath路径不同,则选择的节点集合不同) nodeList = root.SelectNodes("/bk:bookstore/bk:book/ak:title",nsmgr); //使用foreach循环修改所选择节点的内容 foreach (XmlNode title in nodeList) { if (title.InnerText.Trim() == "The Handmaid's Tale") { title.InnerText = "Hello"; } } //将DOM内容保存到xml文件中 doc.Save("Booknew.xml"); Console.WriteLine("保存数据成功"); Console.ReadLine();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值