构造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

宝塔面板企业版和专业版618年中活动 永久授权仅1888元+

我们一般的站长或者企业服务器配置WEB环境会用到免费版本的宝塔面板。但是如果我们需要较多的付费插件扩展,或者是有需要企业功能应用的,短期来说我们可能选择按件按月付费的比较好,但是如果我们长期使用的话,有些网友认为选择宝塔面板企业版或者专业版是比较划算的。这样在年中大促618的时候,我们也可以看到宝塔面板也有发布促销活动。企业版年付899元,专业版永久授权1888元起步。对于有需要的网友来说,还是值...

OneTechCloud香港/日本/美国CN2 GIA月付9折季付8折,可选原生IP或高防VPS

OneTechCloud(易科云)是一家主打CN2等高端线路的VPS主机商家,成立于2019年,提供的产品包括VPS主机和独立服务器租用等,数据中心可选美国洛杉矶、中国香港、日本等,有CN2 GIA线路、AS9929、高防、原生IP等。目前商家针对全场VPS主机提供月付9折,季付8折优惠码,优惠后香港VPS最低季付64元起(≈21.3元/月),美国洛杉矶CN2 GIA线路+20Gbps防御型VPS...

ZoeCloud:香港BGP云服务器,1GB内存/20GB SSD空间/2TB流量/500Mbps/KVM,32元/月

zoecloud怎么样?zoecloud是一家国人商家,5月成立,暂时主要提供香港BGP KVM VPS,线路为AS41378,并有首发永久8折优惠:HKBGP20OFF。目前,解锁香港区 Netflix、Youtube Premium ,但不保证一直解锁,谢绝以不是原生 IP 理由退款。不保证中国大陆连接速度,建议移动中转使用,配合广州移动食用效果更佳。点击进入:zoecloud官方网站地址zo...

c xml为你推荐
邮箱群发邮箱最多能群发多少人中国电信互联星空电信的互联星空服务是什么?二叉树遍历怎么正确理解二叉树的遍历网站运营网络运营主管的主要工作职责是什么?iphone越狱后怎么恢复苹果手机越狱之后能恢复原来吗?电子商务网站模板电子商务网站模板有免费的吗?电子商务网站模板哪里有?电子商务网站模板怎么找?分词技术怎么在SEO中学会运用关键词分词技术怎么上传音乐怎么上传音乐?微信怎么看聊天记录微信在手机上怎么查看聊天记录微信怎么看聊天记录怎样查找一个人的微信聊天记录
域名大全 哈尔滨服务器租用 过期备案域名查询 vps虚拟服务器 服务器评测 godaddy主机 l5639 godaddy优惠码 免备案cdn 美国主机代购 国外网站代理服务器 phpmyadmin配置 广州服务器 ftp免费空间 卡巴斯基破解版 新世界服务器 免费私人服务器 如何建立邮箱 双线机房 彩虹云 更多