构造linq to xml操作xml的c 代码

c xml  时间:2021-02-14  阅读:()

linq to xml操作XML的c#代码

LINQ to XML提供了更方便的读写xml方式。前几篇文章的评论中总有朋友提你为啥不用linq to xml现在到时候了 linq to xml出场了。 .Net中的System.Xml.Linq命名空间提供了linq to xml的支持。这个命名空间中的XDoc umentXElem ent以及XTextXAttribute提供了读写xml文档的关键方法。

1.使用linq to xml写xml

使用XD o c ument的构造函数可以构造一个Xml文档对象使用XElement对象可以构造一个xml节点元素使用XAttribute构造函数可以构造元素的属性使用XText构造函数可以构造节点内的文本。 如下实例代码class Programstatic void Main(string[] args)var xDoc=new XDocument(new XElement(“root”,new XElement(“dog”,new XText(“dog said black is a beautify color”),new XAttribute(“c olor”, “black”)),new XElement(“c at”),new XElement(“p ig”, “pig is great”)));

//xDoc输出xml的enc oding是系统默认编码对于简体中文操作系统是gb2312

//默认是缩进格式化的xml而无须格式化设置xDoc.Save(Console.Out);

Cons ole.Read();

}

上面代码将输出如下Xml

?xml version=“1.0”enc oding=“gb2312”?

rootdog color=“black”dog said black is a beautify color/dogcat/pig pig is great /pig

/root

可以看出linq to xml比XmlDocument和XmlWriter要方便很多。

2.使用linq to xml读取xml

Linq是从集合中查询对象 在linq to xml 中的集合是通过XElement 的Elements(),Elements(string name),以及Descendants 、 Desc endantsAndSelf、 Anc estors 、Anc estorsAndS elf的几个重载方法中获得。 获得XElement集合之后可以通过XElement的Attribute(string name)方法获得元素的属性值可以通过XElement的Value属性获得节点的文本值使用linq就可以方便的做查询做筛选排序了还是上例中的xml我们要读取root的所有字节点并打印出来如下代码class Programstatic void Main(string[] args)var xDoc=new XDocument(new XElement(“root”,new XElement(“dog”,new XText(“dog said black is a beautify color”),new XAttribute(“c olor”, “blac k”)),new XElement(“c at”),new XElement(“p ig”, “pig is great”)));

//xDoc输出xml的enc oding是系统默认编码对于简体中文操作系统是gb2312

//默认是缩进格式化的xml而无须格式化设置

xDoc.Save(Console.Out);

Console.WriteLine();var query=from item in xDoc.Element(“root”).Elements()select new

Typ eNam e=item.Nam e,

Saying=item.Value,

Color=item.Attribute(“c olor”)==null?(s tring)null:item.Attribute(“c olor”).Va lueforeach(var item in query)

Console.WriteLine(“{0} „s color is {1},{0} said{2}”,item.TypeName,item.Color??”Unknown”,item.Saying??”nothing”);

Cons ole.Read();

}

3.Linq to xml简单的应用

应用需求 读取博客园的rss然后在页面上输出最新的10篇博客信息

实现要点 通过XD oc ument的Lo ad静态方法载入Xml通过linq查询最新10条数据

代码如下:

%@P age Language=“C#”Auto Event Wireup=“true”%script runat=“s erver”protected override void OnLoad(EventArgs e)

//实际应用,通过读取博客园的RS S生成Html代码显示最新的博客列表

//使用XD oc ument的Lo ad静态方法载入Xml

var r ss XD o c=XD oc ument.Lo ad(“http://www.c nb lo g s.c om/r s s”);

//使用linq to xml查询前10条新博客var queryBlogs=(from blog in rssXDoc.Descendants(“item”)select new

Title=blog.Element(“title”).Value,

Url=blog.E lement(“link”).Va lue,

PostTime=DateTime.Parse(blog.Element(“pubDate”).Value)

}).Take(20);repeaterBlogs.DataSourc e=queryBlogs;repeaterBlogs.DataBind();bas e.OnLoad(e);

/script

!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”“http://w ww.w 3.org/T R/xhtml 1/DT D/xhtml 1-trans itiona l.dtd”html xmlns=“http://www.w 3.org/1999/xhtml”head runat=“s erver”title Linq to Xml实例/title

/headbodyasp:Repeater ID=“repeater Blogs”Enab leView State=“fals e”runat=“s erver”

ItemTemplateli span

%#Eval(“PostTime”)%/span a href=“%#Eval(“Url”)%“%#Eval(“Title”)%/a/li/ItemTemplate

/as p:Rep eater

/ol

/body

/html

Vultr新用户省钱福利,最新可用优惠码/优惠券更新

如今我们无论线上还是线下选择商品的时候是不是习惯问问是不是有优惠活动,如果有的话会加速购买欲望。同样的,如果我们有准备选择Vultr商家云服务器的时候,也会问问是不是有Vultr优惠码或者优惠券这类。确实,目前Vultr商家有一些时候会有针对新注册用户赠送一定的优惠券活动。那就定期抽点时间在这篇文章中专门整理最新可用Vultr优惠码和商家促销活动。不过需要令我们老用户失望的,至少近五年我们看到Vu...

UCloud云服务器低至年59元

最近我们是不是在讨论较多的是关于K12教育的问题,培训机构由于资本的介入确实让家长更为焦虑,对于这样的整改我们还是很支持的。实际上,在云服务器市场中,我们也看到内卷和资本的力量,各大云服务商竞争也是相当激烈,更不用说个人和小公司服务商日子确实不好过。今天有看到UCloud发布的夏季促销活动,直接提前和双十一保价挂钩。这就是说,人家直接在暑假的时候就上线双十一的活动。早年的双十一活动会提前一周到十天...

ftlcloud9元/月,美国云服务器,1G内存/1核/20g硬盘/10M带宽不限/10G防御

ftlcloud(超云)目前正在搞暑假促销,美国圣何塞数据中心的云服务器低至9元/月,系统盘与数据盘分离,支持Windows和Linux,免费防御CC攻击,自带10Gbps的DDoS防御。FTL-超云服务器的主要特色:稳定、安全、弹性、高性能的云端计算服务,快速部署,并且可根据业务需要扩展计算能力,按需付费,节约成本,提高资源的有效利用率。活动地址:https://www.ftlcloud.com...

c xml为你推荐
淘宝收费淘宝都什么服务是收费的?雅虎社区雅虎是中国的吗flash导航条如何添加FLASH导航条微信如何建群微信怎么建立群arm开发板想购买一个ARM开发板,选什么类型的好数码资源网手机练习打字的软件淘宝店推广淘宝店铺推广有哪些渠道?滚动代码来回滚动代码xv播放器下载除了迅雷看看播放器还有什么播放器支持xv格式的视频?保护气球什么气球可以骑?
老域名失效请用户记下 域名备案中心 泛域名绑定 本网站服务器在美国维护 瓦工 联通c套餐 hawkhost 香港机房 免费cdn加速 60g硬盘 抢票工具 京东云擎 免费ftp站点 免费ftp空间申请 网通ip 创梦 me空间社区 ca187 360云服务 web应用服务器 更多