用linq查询html中div个数,C#使用Linq to XML进行XPath查询

最近在用到HtmlAgliltyPack进行结点查询时,发现这里选择结点使用的是XPath。所以这里总结一下在C#中使用XPath查询XML的方式。习惯了用Linq,这里也是用的Linq to xml的。

Linq To XML的核心类是XDocument和XElement、XAttribute,下面简单介绍一下使用。需要引用using System.Xml.Linq命名空间

这三个类简单理解为:

XDocument:打开的整个XML文档

XElement:节点元素

XAttribute:属性

如有以下XML文件

测试XML

汪家羊肉馆

¥62/人

¥12/人

打开XML文件

1 XDocument doc = XDocument.Load("demo.xml");

获取根节点(html节点 返回XElement类型)

var root = doc.Root;

获取第一个子节点(返回XElement类型)

1 var firstNode = root.FirstNode;

获取全部子节点(返回IEnumerable)

1 var allChildNode = root.Nodes();

获取指定名称的第一个子节点(返回XElement类型)

1 var headNode = root.Element("head");

获取指定名称的全部子节点(返回IEnumerable)

var allNamedNode = root.Elements("head");

获取节点指定名称的属性(

)

1 var attribute = root.Element("body").Element("div").Attribute("class");

获取节点的全部属性

1 var allAttributes = root.Attributes();

使用XPath查询(需要引用using System.Xml.XPath命名空间)

1 var xpathQeury = root.XPathSelectElement("body/div");

获取节点的名称和值

1   //获取结点的名称

2 var nodeName = root.Name;

3 //获取节点的值

4 var nodeValue = root.Value;

保存XML

1 doc.Save("demo.xml");

Linq查询(获取¥12/人节点下的值)

这里仅做示例,返回返回IEnumerable类型的都可以进行Linq查询

不使用XPath

1 var queryResult = root.Element("body").Element("div").Elements("div").ElementAt(1).Elements("span").Where(x=>x.Attribute("class") != null && x.Attribute("class").Value == "price2").FirstOrDefault();

2 if(queryResult != null)

3 Console.WriteLine(queryResult.Value);

使用XPath

1 var xpathQueryResult = root.XPathSelectElements("body/div/div[2]/span").Where(x => x.Attribute("class") != null && x.Attribute("class").Value == "price2").FirstOrDefault();

2 if(xpathQueryResult != null)

3 Console.WriteLine(xpathQueryResult.Value);

输出结果都为下

638ba43dee969fd0d8645dbecd05435e.png

标签:XML,XPath,C#,Linq,var,root,节点

来源: https://www.cnblogs.com/zhaotianff/p/11319871.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学编导还是学计算机,高二学编导烧钱吗

高二学编导烧钱吗2019-09-22 10:34:23文/马妍高二学编导还是很费钱的。艺术专业的学习普遍都很贵,学编导总体需要3-6万元左右。一般培训班要两到三万,还需要购买一些专业的设备,费用也不低。编导专业简介编导有广义和狭义之分,狭义…

用计算机录制一段30,测评!电脑录屏软件哪个好用?小白进阶第1阶段

原标题:测评!电脑录屏软件哪个好用?小白进阶第1阶段电脑录屏软件哪个好用?最近短视频越来越火,小卓发现身边不少人都在捣鼓视频,有拍摄的有录屏的比比皆是。问了一下,大多是对此感兴趣的&#x…

java word 转换 图片_怎样把手机上的图片转换成word?

在当今这个快速发展的时代,人手一部手机是件很正常的事,小编的手机上往往会存有许多喜欢的文字图片,可是那么多的图片又会占用很多手机的空间,这样就有些不好了。庆幸的是最近小编学习到一个可以将手机上的图片转化成文字的技巧&a…

uic计算机科学与技术,北京师范大学-香港浸会大学联合国际学院UIC理工科技学部高招网...

马真真计算机科学与技术专业,现于美国南加州大学攻读硕士学位想想当初报考UIC的时候是冲着网上一个学长说的“如果你想要学习,那么来UIC绝对不会后悔”,现在毕业了,发现,确实如此。四年,学习了方方面面的知识&#xff…

应付账款账龄分析模板_6万字长文剖析宁德时代(三):财务分析

本文为《6万字长文剖析宁德时代》的第三篇。本文来自微信公众号: 凯昇资本(ID:gh_9c57a4031683),头图来自:视觉中国在《6万字长文剖析宁德时代(一):核心技术》和《6万字长文剖析宁德时代(二):市场分析》中我…

开发db文件_Swoole高效跟传统的web开发有什么区别?life

一、swoole的运行模式Swoole高效跟传统的web开发有什么区别,除了传统的LAMP/LNMP同步开发模式,swoole的异步开发模式是怎么样的。我的官方群点击此处。获取更多的swoole学习资料以及视频源码笔记。程序猿的生活:面试12家公司,收获…

计算机设备操作与讲解,计算机组成与操作系统简介

计算机的五大组成部分控制器、运算器、存储器、输入设备、输出设备控制器:是计算机的指挥系统,负责控制计算机其他硬件的工作运算器:负责数学运算与逻辑运算控制器运算器CPU》人的大脑存储器内存优点:存取速度快缺点:断…

360网络修复工具_Win10网络图标不见了解决方法

经常有网友反馈,电脑桌面右下角的网络图标不见了,有时候想要对网络进行相关设置,而找不到入口。下面以最新的系统为例,谈谈Win10网络图标不见了的原因与解决办法。Win10网络图标不见了怎么办?如果仅仅是桌面右下角找不…

计算机课中初中一年级学生特点分析,初中信息技术说课稿:计算机的组成

初中信息技术说课稿《计算机的组成》首先非常感谢我们学校我这个机会,今天能和全镇的信息技术权威坐到一起,我感到无比的荣幸。下面我将从以下8个方面来阐述我的这节课,不当之处,还请各位专家多多批评指正。一、教材分析计算机是初…

c语言使用未初始化的内存怎么解决_C语言快速入门——数组与调试进阶

由ASCII码表的输出程序,我们可以认识到使用循环语句处理一组连续的数据有着巨大的优势。在更普遍的情况下,数据由一组离散的数值组成,如一组学生的考试成绩。对于这些数据的处理,有效的方式是使用循环。但前提是数据可以在循环中有序的访问。ASCII码表输出程序中,循环变量…

从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...

这个国庆档,国产动画在内容市场上的存在感比想象中更加有分量。电影市场上,动画IP电影《姜子牙》完成票房领跑,掀起观影热潮;动画番剧市场上,头部IP动画《全职高手》第二季时隔三年重磅回归——“这是在过年&#xff0…

海南大学计算机调剂要求,海南大学2020年硕士研究生招生调剂的公告

医学教育网小编在海南大学的研究生院官网上查阅到了“海南大学2020年硕士研究生招生调剂的公告”,为帮助各位想要报考海南大学的考生了解,医学教育网小编整理通知内容如下:根据2020年全国硕士研究生招生考试考生进入复试的初试成绩基本要求(国…

计算机上面mac怎么查看,怎么看电脑的mac地址

电脑上网之后,特别是组建了局域网之后,为了防止arp攻击等网络问题,可能会有在路由器上设置物理网卡绑定ip地址的设置。但是,怎么看电脑的mac地址呢?小编带来了具体的操作过程,下面大家跟着学习啦小编一起来学习一下吧…

hbase 查询固定条数_HBase原理深入

HBase读数据流程HBase读数据流程.pngHBase元数据信息.pngHBase读操作首先从zk中找到meta表的region信息,然后meta表中的数据,meta表中存储了用户的region信息根据要查询的namespace、表名和rowkey信息,找到对应的真正存储要查询的数据的regio…

win10 没有计算机策略,Win10家庭版没有组策略怎么办?Win10家庭版打开组策略方法...

Win10主要分为专业版、家庭版和企业版三个版本,其中大多数普通用户用的基本是专业版或家庭版。其中Win10家庭版中并不包含组策略,这意味着对于使用家庭版用户来说,无法借助组策略来优化维护系统。那么,Win10家庭版没有组策略怎么办…

2021 icme_重磅 | 2021年U.S. News 全美院校排名发布,疫情之下,排名大洗牌?!

希望你每天都来看我!点击上方“PH留学”-->点击右上角“...” -->点选“设为星标?”小编前言上周Times发布了2021高等教育世界大学排名重磅 | 2021年THE世界大学排名发布,美国高校依然站在留学鄙视链顶端!当时我们说四大权威世界大学排…

武侠乂服务器位置在哪,武侠乂手游秘境在哪里 地图秘境宝藏分布位置大全

吃鸡游戏就是前期各种捡东西,然后打家劫舍,后期才有几率吃鸡,而这款游戏除了物资点,还有秘境宝藏,来随小编看看武侠乂手游秘境在哪里吧。宏镇秘境杨家村深潭杨家村深潭直接从高处跳进水潭,里面有个打坐的地…

判断按键值_ALIENTEK 阿波罗 STM32F767 开发板资料连载第七章 按键输入实验

1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自《STM32F7 开发指南(HAL 库版)》关注官方微信号公众号,获取更多资料:正点原子第七章 按键输入实验上一章,我们介绍了 STM32F7 的 IO 口作为输出的使用,这一章&#…

ajax能运用到app吗,Jquery之Ajax运用 学习运用篇

还是先说一些基础知识:语法:$.ajax({option})option表示参数。以key/value形式出现。常用参数:type:post/get。url:发送请求的地址。data:{object:object} 发送到服务器的数据,必须为key/value格式。可以设置processData属性&…

四线接近开关接线图_开关、电机、断路器、电热偶、电表接线图!非常齐全,快囤起来吧...

这是非常齐全的一篇电工接线图的文章,包含开关接线图断路器、接触器控制回路接线图,电机逆转、正转原理接线图,电表进出接线图,电路开关接线图,电热偶接线图,希望能帮到想学这些专业的朋友,不是…