LINQ to XML提供了更方便的读写xml方式。前几篇文章的评论中总有朋友提,你为啥不用linq to xml?现在到时候了,linq to xml出场了。
.Net中的System.Xml.Linq命名空间提供了linq to xml的支持。这个命名空间中的XDocument,XElement以及XText,XAttribute提供了读写xml文档的关键方法。
1. 使用linq to xml写xml:
使用XDocument的构造函数可以构造一个Xml文档对象;使用XElement对象可以构造一个xml节点元素,使用XAttribute构造函数可以构造元素的属性;使用XText构造函数可以构造节点内的文本。
如下实例代码:
class Program
{
static 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("color", "black")),
new XElement("cat"),
new XElement("pig", "pig is great")));
//xDoc输出xml的encoding是系统默认编码,对于简体中文操作系统是gb2312
//默认是缩进格式化的xml,而无须格式化设置
xDoc.Save(Console.Out);
Console.Read();
}
}C#的XML读取、增加、修改和删除操作
上面代码将输出如下Xml:
<?xml version="1.0" encoding="gb2312"?>
<root>
<dog color="black">dog said black is a beautify color</dog>
<cat />
<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、DescendantsAndSelf、Ancestors、AncestorsAndSelf的几个重载方法
中获得。
获得XElement集合之后,可以通过XElement的Attribute(string name)方法获得元素的属性值,可以通过XElement的Value属性获得节点的文本值;使用linq就可以方便的做查询,做筛选排序了
还是上例中的xml,我们要读取root的所有字节点,并打印出来,如下代码:
class Program
{
static 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("color", "black")),
new XElement("cat"),
new XElement("pig", "pig is great")));
//xDoc输出xml的encoding是系统默认编码,对于简体中文操作系统是gb2312
//默认是缩进格式化的xml,而无须格式化设置
xDoc.Save(Console.Out);
Console.WriteLine();
var query = from item in xDoc.Element( "root").Elements()
select new
{
TypeName = item.Name,
Saying = item.Value,
Color = item.Attribute("color") == null?(string)null:item.Attribute("color").Value
};
foreach (var item in query)
{
Console.WriteLine("{0} 's color is {1},{0} said {2}",item.TypeName,item.Color??"Unknown",item.Saying??"nothing");
}
Console.Read();
}
}
3. Linq to xml简单的应用
应用需求: 读取博客园的rss,然后在页面上输出最新的10篇博客信息
实现要点: 通过XDocument的Load静态方法载入Xml,通过linq查询最新10条数据
代码如下:
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
//实际应用,通过读取博客园的RSS生成Html代码显示最新的博客列表
//使用XDocument的Load静态方法载入Xml
//玉开技术博客 http://www.cnblogs.com/yukaizhao
var rssXDoc = XDocument.Load("http://www.cnblogs.com/rss");
//使用linq to xml查询前10条新博客
var queryBlogs = (from blog in rssXDoc.Descendants("item")
select new
{
Title = blog.Element("title").Value,
Url = blog.Element("link").Value,
PostTime = DateTime.Parse(blog.Element("pubDate").Value)
}).Take(20);
repeaterBlogs.DataSource = queryBlogs;
repeaterBlogs.DataBind();
base.OnLoad(e);
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Linq to Xml 实例</title>
</head>
<body>
<ol>
<asp:Repeater ID="repeaterBlogs" EnableViewState="false" runat="server">
<ItemTemplate>
<li><span style="float: right">
<%#Eval("PostTime") %></span><a href="<%#Eval("Url") %>"><%#Eval("Title") %></a></li>
</ItemTemplate>
</asp:Repeater>
</ol>
</body>
</html>
分享到:
相关推荐
本文将详细介绍如何使用C#的LinqXML技术对XML文件进行读取。 首先,我们需要引入必要的命名空间。在C#代码中,确保包含了以下导入语句: ```csharp using System; using System.Linq; using System.Xml.Linq; ``` `...
本主题将深入探讨如何使用C#的LINQ来处理XML,包括对单级和多级节点的查询、更新等操作。 首先,让我们了解什么是LINQ。LINQ是一种在C#中集成的数据查询机制,允许开发者使用相同的语法查询各种数据源,如数组、...
总的来说,C#的LinqXML通过提供直观且强大的API,使得XML操作变得更加简单。无论是创建、查询还是修改XML文档,都变得易如反掌。通过熟练掌握Linq to XML,开发者能够更加高效地处理XML数据,提高代码的可读性和可...
在与XML交互时,LINQ to XML 提供了一种高效且易于使用的API,使得操作XML文档变得简单。本文将深入探讨如何使用C#的LINQ to XML来合计XML元素的值。 首先,我们需要了解XML的基本结构。XML(Extensible Markup ...
在本篇文章中,我们将深入探讨如何使用 LINQ to XML 来读取 XML 节点值,并将其绑定到应用程序中的不同组件,如 Windows Forms 控件。 1. **XML 基础** 在讨论 LINQ to XML 之前,我们先要了解 XML(Extensible ...
通过学习和实践这些知识,你将能够熟练地使用C#的Linq to XML技术,不仅限于添加注释,还可以进行XML文档的查询、修改和操作。这在处理XML数据时将大有裨益,特别是在需要生成、解析或转换XML格式的数据时。
【描述】"使用LINQ操作XML" LINQ to XML是LINQ的一个重要组成部分,它提供了对XML文档的强大支持。通过LINQ to XML,我们可以用C#或VB.NET语言直接编写查询,这些查询语句与数据库查询类似,但针对的是XML数据。...
本压缩包"**c#数据库操作Linq操作Xml源码.rar**"主要关注两个核心主题:C#中的LINQ与XML操作。 一、LINQ简介 LINQ是.NET Framework 3.5及更高版本引入的一个特性,旨在统一各种数据源的查询语法。通过LINQ,开发者...
本篇将深入探讨如何使用C# Linq to XML来查找根元素。 XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于数据交换和配置文件。在XML文档中,根元素是整个文档结构的起点和终点,它...
本文将深入探讨如何使用C#的LinqXML技术通过LINQ技术创建XML文件。 首先,我们需要引入必要的命名空间,这包括`System.Xml.Linq`,它包含了处理XML的所有类: ```csharp using System.Xml.Linq; ``` 创建XML文件...
在这个场景中,我们将探讨如何使用C#的LINQ to XML来将XML文件中的属性转换为元素。 首先,让我们了解XML的基本结构。XML是一种标记语言,用于存储和传输数据。数据以元素的形式存在,元素可以有子元素、文本内容和...
在C#编程中,LINQ to XML是一种强大的API,用于创建、读取和修改XML文档。它是.NET Framework 3.5引入的新特性,为处理XML数据提供了简洁且高效的语法。当我们需要向XML文件中添加XML声明时,LINQ to XML提供了一种...
在C#编程中,LINQ to XML是一种强大的API,用于处理XML...通过掌握`Descendants()`, `Elements()`, `Ancestors()`, `Attributes()`等方法以及LINQ查询表达式,开发者可以高效地进行XML操作,提升代码质量和可维护性。
LINQ to XML则专门针对XML数据进行查询操作,提供了高效的XML处理方式,简化了XML编程。 书中首先会介绍LINQ的基本概念,包括查询表达式语法、查询操作符和匿名类型的使用。通过学习,读者将理解如何利用LINQ简化...
本实例将深入探讨C# LINQ to XML的基础知识,以及如何利用它来操作XML数据。 首先,LINQ(Language Integrated Query,语言集成查询)是.NET Framework 3.5引入的一项特性,它提供了在各种数据源(如集合、数组、...
以上就是使用C# LINQ to XML访问指定节点父节点的基本步骤。在实际应用中,根据XML文档的结构和需求,可能需要进行更复杂的查询和操作。例如,如果XML文档来自文件,需要先加载文件;如果数据在网络流中,可能需要...
"xml.linq.rar_C# LInq_dueabb_xml to linq"这个压缩包文件,主要包含了关于C#中使用LINQ处理XML的相关资料。 首先,我们需要理解什么是LINQ。LINQ(Language Integrated Query,语言集成查询)是.NET Framework ...
其中,LINQ to XML是针对XML文档处理的一个重要部分,它提供了高效的XML操作方法,使得在.NET应用程序中处理XML变得更加简洁和直观。 ### LINQ to XML 基本概念 1. **XElement 和 XAttribute**: LINQ to XML 的...
本篇文章将深入探讨如何使用C# LINQ to XML来查找指定名称的元素。 首先,我们需要引入`System.Xml.Linq`命名空间,该命名空间包含了处理XML所需的所有类。引入后,我们可以创建或加载XML文档,然后利用LINQ的查询...
C#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XMLC#例子代码 A0510_LINQ_XML...