三种读取xml方法的比较

上传人:自*** 文档编号:80471112 上传时间:2019-02-19 格式:DOCX 页数:6 大小:124.28KB
返回 下载 相关 举报
三种读取xml方法的比较_第1页
第1页 / 共6页
三种读取xml方法的比较_第2页
第2页 / 共6页
三种读取xml方法的比较_第3页
第3页 / 共6页
三种读取xml方法的比较_第4页
第4页 / 共6页
三种读取xml方法的比较_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《三种读取xml方法的比较》由会员分享,可在线阅读,更多相关《三种读取xml方法的比较(6页珍藏版)》请在金锄头文库上搜索。

1、使用XMLReader、XMLDocument和DataSet读取xml文件及效率 在 .NET 开发中经常需要读取和操作XML文件,例如:操作配置文件(web.config和app.config)、读取业务设置的xml文件等。以前都喜欢用DataSet直接读取或写入xml,当文件小的时候,读取效率还能接受,但是当文件很大的时候,读取就变得很慢了。闲暇之于就对 XMLReader 、 XMLDocument和DataSet 读取XML文件进行简单总结,对效率进行简单比较。1、XMLReader 读取XML文件 XMLReader 提供对 XML 数据进行快速、非缓存、只进访问的读取器。XMLR

2、eader 只能读取xml文件,需要我们自己控制怎样获取相应的xml节点的信息,适合于读取很大的xml文件。XMLReader 有一个类型为XmlNodeType的NodeType只读属性,通过它可以知道当前节点类型,以及根据节点类型和具体需求获取相应节点的信息。更详细的信息可以到微软技术资源库进行查询和了解。XMLReader读取XML文件方式如下: 1: static ListDictionary XMLReaderTest(string xmlPath) 2: 3: ListDictionary entityInfo = new ListDictionary(); 4: using (X

3、mlReader reader = new XmlTextReader(xmlPath) 5: 6: Dictionary xmlValue = null; 7: string key = string.Empty; 8: while (reader.Read() 9: 10: switch (reader.NodeType) 11: 12: case XmlNodeType.Element: 13: if (string.Compare(reader.LocalName, BE_WorkStation_ACInstance, StringComparison.OrdinalIgnoreCas

4、e) = 0) 14: 15: xmlValue = new Dictionary(); 16: 17: else 18: 19: if (string.Compare(reader.LocalName, EntitySchema, StringComparison.OrdinalIgnoreCase) != 0) 20: 21: key = reader.LocalName; 22: 23: 24: break; 25: case XmlNodeType.EndElement: 26: if (string.Compare(reader.LocalName, BE_WorkStation_A

5、CInstance, StringComparison.OrdinalIgnoreCase) = 0) 27: 28: if (xmlValue != null) 29: 30: entityInfo.Add(xmlValue); 31: xmlValue = null; 32: 33: 34: break; 35: case XmlNodeType.Text: 36: if (xmlValue != null) 37: 38: xmlValue.Add(key, reader.Value); 39: 40: break; 41: default: 42: break; 43: 44: 45:

6、 46: return entityInfo; 47: 2、XMLDocument读取XML文件 XMLDocument 表示XML文档在内存中的树形结构,它提供像js操作html文档一样的方式操作XML文档。在读取单个小XML文件时效率比较高。XMLDocument 读取XML文件方式如下: 1: static ListDictionary XMLDocumentTest(string xmlPath) 2: 3: ListDictionary entityInfo = new ListDictionary(); 4: using (XmlReader reader = new XmlTex

7、tReader(xmlPath) 5: 6: XmlDocument doc = new XmlDocument(); 7: doc.Load(reader); 8: XmlNodeList nodeList = doc.ChildNodes; 9: foreach (XmlNode node in nodeList) 10: 11: var xmlValue = new Dictionary(); 12: foreach (XmlNode child in node.ChildNodes) 13: 14: xmlValuechild.LocalName = child.InnerText;

8、15: 16: entityInfo.Add(xmlValue); 17: 18: 19: return entityInfo; 20: 3、DataSet 读取XML文件 DataSet 类型提供了一个ReadXml 方法,它将XML架构和数据读入DataSet中。DataSet 在读取 XML 文件时效率很低。DataSet 读取XML文件方式如下: 1: static ListDictionary DataSetTest(string xmlPath) 2: 3: ListDictionary entityInfo = new ListDictionary(); 4: DataSet ds = new DataSet(); 5: /读取XML文件架构 6: using (XmlReader reader = new XmlTextReader(xmlPath) 7: 8: ds.ReadXmlSchema(reader); 9: 10: foreach (DataTable dt in ds.Tables) 11: 12: dt.BeginLoadData(); 13: 14: using (XmlReader reader = new XmlTextReader(xmlPath) 15: 16: ds.ReadXml(reader); 17:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号