介绍
小编给大家分享一下XML数据读取方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
测试开始先读取XML源,用一个比较大的rss文件链接,复制到项目bin/调试目录下。
流xmlStream=new MemoryStream (File.ReadAllBytes(路径));
一、XmlDocument方式
代码
1静态IList testXmlDocument () 2){ 3 var doc=new XmlDocument (); 4 doc.Load (xmlStream); 5 var=doc.DocumentElement.ChildNodes节点列表; 6 var lstChannel=new List
二,XPathNavigator方式
代码
1静态IList testXmlNavigator () 2){ 3 var doc=new XmlDocument (); 4 doc.Load (xmlStream); 5 var nav=doc.CreateNavigator (); 6 nav.MoveToRoot (); 7 var=nav.Select节点列表(“/通道/item"); 8 var lstChannel=new List
三,XmlTextReader方式
代码
1静态ListtestXmlReader () 2){ 3 var lstChannel=new List (); 4读者var=XmlReader.Create (xmlStream); 5时(reader.Read ()) 6 { 7如果(读者。名字==癷tem",,读者。NodeType==XmlNodeType.Element) 8 { 9 var通道=new通道(); 10 lstChannel.Add(渠道); 11时(reader.Read ()) 12 { 13如果(读者。名字==癷tem")休息; 14如果(读者。NodeType !=XmlNodeType.Element)继续; 15开关(reader.Name) 16 { 17例“title": 18个频道。Title=reader.ReadString (); 19日休息; 20例“link": 21个通道。链接=reader.ReadString (); 22日休息; 23例“description": 24通道。描述=reader.ReadString (); 25日休息; 26例“content": 27个频道。内容=reader.ReadString (); 28日休息; 29例“pubDate": 30个频道。=reader.ReadString的作用是(); 31日休息; 32例“author": 33频道。作者=reader.ReadString (); 34打破; 35例“category": 36个频道。类别=reader.ReadString (); 37打破; 38岁的默认值: 39打破; 40} 41} 42} 43} 44返回lstChannel; 45}
四,Linq to XML方式
代码
1静态IList testXmlLinq () 2){ 3 var xd=XDocument.Load (xmlStream); 从节点列表4 var=xd.Elements (“channel") .Descendants (“item") 5选择新的 6 { 7 Title=node.Element (“title") value, 8链接=node.Element (“link") value, 9=node.Element描述(“description") value, 10内容=node.Element (“content") value, 11日发布日期=node.Element (“pubDate") value, 12=node.Element作者(“author") value, 13=node.Element类别(“category") value null null null null null nullXML数据读取方式有哪些