LINQ 步步学-LINQ to XML

2024-01-15 04:48
文章标签 xml linq 步步

本文主要是介绍LINQ 步步学-LINQ to XML,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XML 是个好东西,但查询 XML 真的不方便,自从有了 LINQ to XML 后,一切改变了。

假设有 XML 文件如下:

<?xml version="1.0" encoding="utf-8" ?>
<company>
    <name engName="cftea">千一网络</name>
    <employees>
        <employee>
            <name age="29">张龙</name>
        </employee>
        <employee>
            <name age="28">赵虎</name>
        </employee>
    </employees>
</company>

我们用 LINQ to XML 去查 engName 的值,代码如下:

System.Xml.Linq.XDocument xd = System.Xml.Linq.XDocument.Load(Server.MapPath("Company.xml"));

var engName = from x in xd.Element("company").Element("name").Attributes()
              where x.Name == "engName"
              select x.Value;

Response.Write(engName.First<string>());

显示为 cftea。

说明:xd.Element("company").Element("name") 并不包括 employees 中的 name 节点。

同样用上面的 XML 文件,查询年龄 > 28 岁的雇员:

System.Xml.Linq.XElement xe = System.Xml.Linq.XElement.Load(Server.MapPath("Company.xml"));

var employees = from emp in xe.Element("employees").Elements()
                where Convert.ToInt32(emp.Element("name").Attribute("age").Value) > 28
                select new { Name = emp.Element("name").Value, Age = emp.Element("name").Attribute("age").Value };

foreach (var employee in employees)
{
    Response.Write(employee.Name + "<br>");
}

emp in xe.Element("employees").Elements() 实际上表示将 employees 的儿子节点存在 emp 中。

XDocument 与 XElement

两个例子中,一个用了 XDocument、一个用了 XElement,二者的区别是什么呢?我们拿第二个例的 from 语句来作个对比:

from emp in xd.Element("company").Element("employees").Elements()
from emp in xe.Element("employees").Elements()

可以看出:如果使用 XDocument,则需要从根节点,一步一步往下;而使用 XElement 则比较自由,可以直接指定任意层次的节点。

这篇关于LINQ 步步学-LINQ to XML的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607702

相关文章

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

SpringBoot中配置文件pom.xml的使用详解

《SpringBoot中配置文件pom.xml的使用详解》SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一... 目录1. 基本结构2. 关键部分详解2.1 <modelVersion>2.2 项目坐标2.3 <p

Java实现XML与JSON的互相转换详解

《Java实现XML与JSON的互相转换详解》这篇文章主要为大家详细介绍了如何使用Java实现XML与JSON的互相转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. XML转jsON1.1 代码目的1.2 代码实现2. JSON转XML3. JSON转XML并输出成指定的

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构