linq to xml (linq查询)

25、LINQ to XML:数据加载与查询全解析 本文深入解析了使用 LINQ to XML 进行数据加载与查询的技术,涵盖从 SQL Server、文件系统、字符串和网络等多种数据源加载 XML 数据的方法,并详细介绍了如何使用 LINQ 进行简单及复杂的数据查询操作。内容包括命名空间的处理、标准查询运算符的使用、匿名类型与 Lambda 表达式的优势,以及常见问题的解决方案。适合希望提升 XML 数据处理能力的 .NET 开发者阅读,帮助其高效地操作 XML 数据。 阅读详情

public partial class QueryXML : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
   ///ReadXmlFile();
   ///QueryRootElement();
   ///QueryElementByName();
   ///QueryElementByAttribute();
   ///QueryElementBySub();
   ///QueryElementByOrder();
   ///QueryElementByCompute();
    }

private void ReadXmlFile()//读取XML文件
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");
   XElement xe = XElement.Load(xmlFilePath);
   ///显示XML文件的内容
   Response.Write(xe);
   ///设置网页显示的形式为XML文件
   Response.ContentType = "text/xml";
   Response.End();
}

private void QueryRootElement()//查询根元素
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");
   XDocument doc = XDocument.Load(xmlFilePath);
   ///查询根元素
   IEnumerable<XElement> elements = from e in doc.Elements("Books")   
           select e;
   ///输出根元素的名称
   foreach (XElement xe in elements)
   {
    Response.Write(xe.Name + "<br />");
   }
}

private void QueryElementByName()//查询指点定名称的元素
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");  
   XElement xes = XElement.Load(xmlFilePath);
   ///查询元素
   IEnumerable<XElement> elements = from e in xes.Elements("Book")
           where (string)e.Element("Name") == "Book 0002"
           select e;
   ///输出元素的ID属性的值
   foreach (XElement xe in elements)
   {
    Response.Write(xe.Name.LocalName + ":" + xe.Attribute("ID").Value + "<br />");
   }
}

private void QueryElementByAttribute()//查询指定属性的元素
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");
   XElement xes = XElement.Load(xmlFilePath);
   ///查询元素
   IEnumerable<XElement> elements = from e in xes.Elements("Book")
           where e.Attribute("ID").Value.IndexOf("10") > -1
           select e;
   ///输出元素的ID属性的值
   foreach (XElement xe in elements)
   {
    Response.Write(xe.Name.LocalName + ":" + xe.Attribute("ID").Value + "<br />");
   }
}

private void QueryElementBySub()//查询指定元素的子元素
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");
   XElement xes = XElement.Load(xmlFilePath);
   ///查询元素
   IEnumerable<XElement> elements = from e in xes.Descendants("Remark")          
           select e;
   ///输出元素的值
   foreach (XElement xe in elements)
   {
    Response.Write(xe.Name.LocalName + ":" + xe.Value + "<br />");
   }
}

private void QueryElementByOrder()//查询元素并排列
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");
   XElement xes = XElement.Load(xmlFilePath);
   ///查询元素
   IEnumerable<XElement> elements = from e in xes.Elements("Book")
           where e.Attribute("ID").Value.IndexOf("10") > -1
           orderby (string)e.Element("Name") descending
           select e;
   ///输出元素的名称
   foreach (XElement xe in elements)
   {
    Response.Write(xe.Element("Name").ToString() + "<br />");
   }
}

private void QueryElementByCompute()//查询元素并计算指定的值
{   ///导入XML文件
   string xmlFilePath = Server.MapPath("Data/Books.xml");
   XElement xes = XElement.Load(xmlFilePath);
   ///查询根元素
   IEnumerable<XElement> elements = from e in xes.Elements("Book")
           where e.Attribute("ID").Value.IndexOf("10") > -1
           orderby (string)e.Element("Name") descending
           select e;
   ///计算价格的平均值
   decimal avg = elements.Average(e => decimal.Parse(e.Element("Price").Value));
   Response.Write("Average:" + avg.ToString() + "<br />");  
}
}

 

book.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<Books>
<Book ID="101">
    <No>00001</No>
    <Name>Book 0001</Name>
    <Price>100</Price>
    <Remark>This is a book 00001.</Remark>
</Book>
<Book ID="102">
    <No>00002</No>
    <Name>Book 0002</Name>
    <Price>200</Price>
    <Remark>This is a book 00002.</Remark>
</Book>
<Book>
    <ID>106</ID>
    <No>0006</No>
    <Name>Book 0006</Name>
    <Price>600</Price>
    <Remark>This is a book 0006.</Remark>
</Book>
</Books>

 

上面只是对简单xml的操作,如果复杂的xml,原理一样,但是做起来就不是这么简单了,所以对xml的操作,本人还是不建议用linq,相比较看我觉得xpath要简单很多!

27、LINQ to XML操作符与高级查询实战 本文详细介绍了LINQ to XML的操作符及其在高级查询中的应用。内容涵盖筛选、排序、移除节点等基本操作符的使用,并通过实例讲解了如何进行复杂的XML查询,包括多文档连接和条件筛选等。文章还通过一个模拟互联网拍卖网站的数据展示了LINQ to XML在实际场景中的强大查询能力。无论是初学者还是有经验的开发者,都能从中掌握LINQ to XML在XML数据处理方面的高效技巧。 阅读详情

相关推荐

掌握LINQ to XML:查询与转换技术

本文深入探讨了LINQ to XML在处理静态和动态XML文档中的应用。通过实例演示了如何使用LINQ查询XML文档中的元素,以及如何将查询结果用于输出和进一步处理。同时,本文还介绍了如何读取和写入XML文档,并且详细解释了XSLT转换技术在将XML文档转换为HTML报告中的作用。

weixin_34268462的博客 320

Linq To XML

XML 格式: <?xml version="1.0" encoding="utf-8"?> <Accounts> <Account> <DisplayedName></DisplayedName> <AccountName></AccountName> <Shar...

weixin_30917213的博客 93

掌握LINQ to XML:查询与操作XML文档的利器

本文介绍了如何使用LINQ to XML技术来查询和操作XML文档。通过实例演示了从静态XML文件中查询数据,以及如何处理动态的XML源,如RSS feeds。此外,还探讨了如何读取和写入XML文档,以及如何使用XSLT进行XML文档的转换,最终生成HTML报告供用户查看。

weixin_42234168的博客 423

XmlDocument和LINQ to XML两种方式对xml的创建、查询

假设一个xml文件内容如下: 张三 18 李四 20 创建xml代码如下: private void button1_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); Xml

gdjlc的专栏 1757

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

C++控制台实现简单的注册登录

C++控制台实现简单的注册登录 #include<iostream> #include<string> #include <vector> #include <conio.h> void Display();//调用display显示switch()界面 void Register();//注册 void Enter();//登录 using nam...

乔路非 2万+

C#使用Linq to XML进行XPath查询

在C#使用Linq to XML进行XPath查询,主要用到XPathSelectElements扩展方法。

【微软MVP】zhaotianff的专栏 1345

ROS2实战:手把手教你用CMake集成自定义DDS(以CycloneDDS为例)

本文详细介绍了如何在ROS2中通过CMake集成自定义DDS(以CycloneDDS为例),涵盖环境准备、源码编译、ROS2工作区集成、性能调优及常见问题排查。通过RMW中间件抽象层,开发者可以灵活切换DDS实现,提升系统实时性和可靠性。

weixin_29284201的博客 347

LINQ之路18:LINQ to XML之导航和查询

在.NET开发中,XML处理一直是一个重要场景。传统方式使用XmlDocument操作XML繁琐且代码量大,而LINQ to XML通过结合LINQ查询语法,让XML导航和查询变得简洁优雅。:使用安全的类型转换避免空引用异常相比传统的XmlDocument,LINQ to XML不仅代码更简洁,而且与LINQ生态无缝集成,大大提高了开发效率和代码可维护性。### 3. 高级查询:结合LINQ表达式LINQ to XML最强大的地方在于可以直接在查询语法中操作XML元素,实现复杂条件筛选和投影。

Io32IgcL1的博客 241

EU 2021/646 eCall工程拆解:MSD、测试模式与型式核准

紧急呼叫系统(eCall)是车载通信中面向事故救援的安全功能,其原理是在碰撞或人工触发后,通过蜂窝网络向公共安全应答点发送最小数据集(MSD),并建立语音链路。技术价值在于缩短救援响应时间、提升事故后生存率,应用场景覆盖乘用车、轻型商用车及车载T-Box等前装通信模块。面向欧盟市场时,EU 2021/646把eCall从安装要求推进到型式核准测试,关注触发链路、备用电源、GNSS定位、MSD字段、音频质量与回拨能力。工程落地需要围绕测试模式、字段校验、配置管理和送检样件建立可交付合规方案。

weixin_31815843的博客 208

【深度学习新浪潮】如何上手DINO v3:Meta新一代视觉大模型实战指南

自定义数据集类(适配本地/公开数据集)# 去除batch维度# 构建数据加载器# 定义分类模型(冻结预训练层,仅训练分类头)self.classifier = nn.Linear(dino_model.config.hidden_size, num_classes) # 分类头global_feat = outputs.global_attention_pool # 取全局特征# 初始化模型# 冻结预训练层(仅训练分类头)# 定义损失函数和优化器。

专注:太空算力、AI infra、异构调度、大模型成本工程 491

LINQ To XML:之复杂的查询举例

复杂的查询举例

lee576的专栏 3279

基于STM32、HAL库的RN8209D电能计量芯片驱动程序设计

/ 假设电压互感器变比为220V:0.5V,电流互感器变比为20A:5mA。// 电压ADC原始值。// 电流ADC原始值。// 有功功率(W)// 电能(kWh)

corlin6688的博客 469

Linq To xml 查询时需要注意的一点。

今天由于项目原因,需要用C#解析Xml文件,由于使用的是3.5的framework,所以想到拿Linq to xml试试水。于是按着MSDN上的作法自己试了一下CodeXElementroot=XElement.Load("ProjectSoruce.xml");IEnumerable<XElement>Resourc...

126

DeiT详解:知识蒸馏的Transformer

DeiT模型(8600万参数)仅用一台 GPU 服务器在 53 hours train,20 hours finetune,仅使用 ImageNet 就达到了 84.2 top-1 准确性,而无需使用任何外部数据进行训练,性能与最先进的卷积神经网络(CNN)可以抗衡。其核心是提出了针对 ViT 的教师-学生蒸馏训练策略,并提出了方法,使得在视觉领域训练得又快又好。

走在深度学习前沿的小宋 2636

huggingface使用git上传model或者Dataset到HF,当然也可以上传代码,以及大文件,很哇塞!!!

huggingface使用git上传model或者Dataset到HF,当然也可以上传代码,以及大文件,很哇塞!!! 第一次使用时,需要使用设置系统全局的huggingface token,这。点击huggingface首页右上角的头像 → settings → access tokens,创建一个write权限的token,名字可以随便取。

拥抱具身智能,昇腾Ascend C 3104

LINQ系列:LINQ to XML查询

1. 读取XML文件   XDocument和XElement类都提供了导入XML文件的Load()方法,可以读取XML文件的内容,并转换为XDocument或XElement类的实例。   示例XML文件:Product.xml xml version="1.0" encoding="utf-8"?> Products> Product> ProductID

lxrj2008的专栏 340

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LINQ to XML一些基本查询

Code /**/////根据元素的名称进行筛选(有命名空间) //XNamespaceaw="http://www.adventure-works.com"; //XElementpo=XElement.Load("PurchaseOrderInNamespace.xml"); //IEnumerabl...

weixin_30402343的博客 105

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

XLINQ(LINQ to XML)之针对XML文件的添加、查询、更新和删除

介绍 以某一XML文件为例,XLINQ(LINQ to XML)之针对XML文件的添加操作、查询操作、更新操作和删除操作 示例 Sample.xml xml version="1.0" encoding="utf-8"?> root>   person n

anchenyanyue的专栏 934

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

一、Linq to XML (创建,添加,查询)

Xml操作场景:产品采购单。描述:产品采购单用于描述产品的采购,它可以从各地进行采购,且每地可以采购多种商品。地址信息包括:城市,电话,联系人,日期,商品;商品包括0到多项,商品包括:产品名称,编号,描述,单价,采购总量。xml version="1.0" encoding="utf-8" ?>PurchaseOrder>  address>    city>city>

Ivan Song的专栏 1782

Linq To XML 查询,并转换为Datatable

查询的xml       2     0     0     出勤     出勤         2     0     1     出勤     缺勤   第一种方法: string path = xmlpath+classname + ".xml"; XElement root = XEleme

圣杰 1834

linq to xml 初学 -- 查询语法

初学linq  to xml,很方便 string path = ch.GetConfigFile("")+ "SpeedDial.xml"; var sdDoc = XDocument.Load(path); //linq to xml var query = from resource in ...

weixin_34000916的博客 136

C# 编写简单的LINQ to XML查询

emp.xml内容如下:<?xmlversion="1.0"encoding="GB2312"standalone="yes"?><NewDataSet><emp> <EmployeeID>1</EmployeeID> <LastName>张&lt...

weixin_30545285的博客 100
上一篇: ooD
下一篇: 用Linq to XML的方式查询XML 文档
留心居
博客等级 码龄18年 217粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值