资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C#中常用的几种读取XML文件的方法http:/blog.csdn.net/tiemufeng1122/article/details/6723764XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件。“在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询,但是,DOM的缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题。流模型很好的解决了这个问题,因为它对XML文件的访问采用的是流的概念,也就是说,任何时候在内存中只有当前节点,但它也有它的不足,它是只读的,仅向前的,不能在文档中执行向后导航操作。”具体参见在Visual C#中使用XML指南之读取XML下面我将介绍三种常用的读取XML文件的方法。分别是 1: 使用 XmlDocument 2: 使用 XmlTextReader 3: 使用 Linq to Xml这里我先创建一个XML文件,名为Book.xml下面所有的方法都是基于这个XML文件的,文件内容如下: 1: 2: 3: 4: 5: 数据结构 6: 严蔚敏 7: 30.00 8: 9: 10: 路由型与交换型互联网基础 11: 程庆梅 12: 27.00 13: 14: 15: 计算机硬件技术基础 16: 李继灿 17: 25.00 18: 19: 20: 软件质量保证与管理 21: 朱少民 22: 39.00 23: 24: 25: 算法设计与分析 26: 王红梅 27: 23.00 28: 29: 30: 计算机操作系统 31: 7-111-19149-1 32: 28 33: 34: 为了方便读取,我还定义一个书的实体类,名为BookModel,具体内容如下: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: 6: namespace 使用XmlDocument 7: 8: public class BookModel 9: 10: public BookModel() 11: 12: / 13: / 所对应的课程类型 14: / 15: private string bookType; 16: 17: public string BookType 18: 19: get return bookType; 20: set bookType = value; 21: 22: 23: / 24: / 书所对应的ISBN号 25: / 26: private string bookISBN; 27: 28: public string BookISBN 29: 30: get return bookISBN; 31: set bookISBN = value; 32: 33: 34: / 35: / 书名 36: / 37: private string bookName; 38: 39: public string BookName 40: 41: get return bookName; 42: set bookName = value; 43: 44: 45: / 46: / 作者 47: / 48: private string bookAuthor; 49: 50: public string BookAuthor 51: 52: get return bookAuthor; 53: set bookAuthor = value; 54: 55: 56: / 57: / 价格 58: / 59: private double bookPrice; 60: 61: public double BookPrice 62: 63: get return bookPrice; 64: set bookPrice = value; 65: 66: 67: 1.使用XmlDocument.使用XmlDocument是一种基于文档结构模型的方式来读取XML文件.在XML文件中,我们可以把XML看作是由文档声明(Declare),元素(Element),属性(Attribute),文本(Text)等构成的一个树.最开始的一个结点叫作根结点,每个结点都可以有自己的子结点.得到一个结点后,可以通过一系列属性或方法得到这个结点的值或其它的一些属性.例如: 1: xn 代表一个结点 2: xn.Name;/这个结点的名称 3: xn.Value;/这个结点的值 4: xn.ChildNodes;/这个结点的所有子结点 5: xn.ParentNode;/这个结点的父结点 6: .1.1 读取所有的数据.使用的时候,首先声明一个XmlDocument对象,然后调用Load方法,从指定的路径加载XML文件. 1: XmlDocument doc = new XmlDocument(); 2: doc.Load(.Book.xml);然后可以通过调用SelectSingleNode得到指定的结点,通过GetAttribute得到具体的属性值.参看下面的代码 1: / 得到根节点bookstore 2: XmlNode xn = xmlDoc.SelectSingleNode(bookstore); 3: 4: 5: / 得到根节点的所有子节点 6: XmlNodeList xnl = xn.ChildNodes; 7: 8: foreach (XmlNode xn1 in xnl) 9: 10: BookModel bookModel = new BookModel(); 11: / 将节点转换为元素,便于得到节点的属性值 12: XmlElement xe = (XmlElement)xn1; 13: / 得到Type和ISBN两个属性的属性值 14: bookModel.BookISBN = xe.GetAttribute(ISBN).ToString(); 15: bookModel.BookType = xe.GetAttribute(Type).ToString(); 16: / 得到Book节点的所有子节点 17: XmlNodeList xnl0 = xe.ChildNodes; 18: bookModel.BookName=xnl0.Item(0).InnerText; 19: bookModel.BookAuthor=xnl0.Item(1).InnerText; 20: bookModel.BookPrice=Convert.ToDouble(xnl0.Item(
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号