日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

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

發(fā)布時(shí)間:2023/12/13 C# 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用linq查询html中div个数,C#使用Linq to XML进行XPath查询 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在用到HtmlAgliltyPack進(jìn)行結(jié)點(diǎn)查詢時(shí),發(fā)現(xiàn)這里選擇結(jié)點(diǎn)使用的是XPath。所以這里總結(jié)一下在C#中使用XPath查詢XML的方式。習(xí)慣了用Linq,這里也是用的Linq to xml的。

Linq To XML的核心類是XDocument和XElement、XAttribute,下面簡(jiǎn)單介紹一下使用。需要引用using System.Xml.Linq命名空間

這三個(gè)類簡(jiǎn)單理解為:

XDocument:打開(kāi)的整個(gè)XML文檔

XElement:節(jié)點(diǎn)元素

XAttribute:屬性

如有以下XML文件

測(cè)試XML

汪家羊肉館

¥62/人

¥12/人

打開(kāi)XML文件

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

獲取根節(jié)點(diǎn)(html節(jié)點(diǎn) 返回XElement類型)

var root = doc.Root;

獲取第一個(gè)子節(jié)點(diǎn)(返回XElement類型)

1 var firstNode = root.FirstNode;

獲取全部子節(jié)點(diǎn)(返回IEnumerable)

1 var allChildNode = root.Nodes();

獲取指定名稱的第一個(gè)子節(jié)點(diǎn)(返回XElement類型)

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

獲取指定名稱的全部子節(jié)點(diǎn)(返回IEnumerable)

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

獲取節(jié)點(diǎn)指定名稱的屬性(

)

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

獲取節(jié)點(diǎn)的全部屬性

1 var allAttributes = root.Attributes();

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

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

獲取節(jié)點(diǎn)的名稱和值

1   //獲取結(jié)點(diǎn)的名稱

2 var nodeName = root.Name;

3 //獲取節(jié)點(diǎn)的值

4 var nodeValue = root.Value;

保存XML

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

Linq查詢(獲取¥12/人節(jié)點(diǎn)下的值)

這里僅做示例,返回返回IEnumerable類型的都可以進(jìn)行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);

輸出結(jié)果都為下

標(biāo)簽:XML,XPath,C#,Linq,var,root,節(jié)點(diǎn)

來(lái)源: https://www.cnblogs.com/zhaotianff/p/11319871.html

總結(jié)

以上是生活随笔為你收集整理的用linq查询html中div个数,C#使用Linq to XML进行XPath查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。