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

相关文章

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

java中XML的使用全过程

《java中XML的使用全过程》:本文主要介绍java中XML的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录什么是XML特点XML作用XML的编写语法基本语法特殊字符编写约束XML的书写格式DTD文档schema文档解析XML的方法​​DOM解析XM

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

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