构造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搬瓦工和Vultr97%,搬瓦工和Vultr全方位比较!

搬瓦工和Vultr哪个好?搬瓦工和Vultr都是非常火爆的国外VPS,可以说是国内网友买的最多的两家,那么搬瓦工和Vultr哪个好?如果要选择VPS,首先我们要考虑成本、服务器质量以及产品的售后服务。老玩家都知道目前在国内最受欢迎的国外VPS服务商vultr和搬瓦工口碑都很不错。搬瓦工和Vultr哪个稳定?搬瓦工和Vultr哪个速度快?为了回答这些问题,本文从线路、速度、功能、售后等多方面对比这两...

个人网站备案流程及注意事项(内容方向和适用主机商)

如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

c xml为你推荐
云播怎么看片云播看不了视频百度抢票浏览器现在火车票越来越难买了,新版百度手机浏览器,除了抢票外,还有什么其他功能吗?百度手写百度为什么没有了在线手写输入法正则表达式javajava正则表达式雅虎天盾雅虎天盾、瑞星杀毒软件、瑞星防火墙、卡卡上网安全助手能同时使用吗?人人逛街包公免费逛街打一成语mate8价格华为mate8手机参数配置如何,多少元mate8价格现在买华为mate8高配划算吗srv记录如何验证是否为域控制器创建了 SRV DNS 记录网管工具做技术网管需要哪些工具?具体做些什么?
金万维动态域名 187邮箱 ddos 网站挂马检测工具 铁通流量查询 域名转接 699美元 umax120 四核服务器 shopex主机 云服务器比较 免费个人主页 免费蓝钻 hdchina ncp是什么 windowsserverr2 cpu使用率过高怎么办 服务器是什么意思 带宽测速 hosts文件修改 更多