寻找带有CSS选择器的c# Html解析器

本文关键字:Html CSS 选择器 寻找 | 更新日期: 2023-09-27 18:01:54

现在我使用的是HtmlAgilityPack

但是很难用Xpath选择

在Java中,我知道Jsoup。有没有。net库做同样的事情?

解析Html并使用CSS样式选择器查找元素

寻找带有CSS选择器的c# Html解析器

尝试Fizzler与htmllagilitypack。

失败:

一个基于CSS选择器从节点树中选择项的。net库。默认实现基于htmllagilitypack并从HTML文档中选择。

项目网站示例:

// Load the document using HTMLAgilityPack as normal
var html = new HtmlDocument();
html.LoadHtml(@"
  <html>
      <head></head>
      <body>
        <div>
          <p class='content'>Fizzler</p>
          <p>CSS Selector Engine</p></div>
      </body>
  </html>");
// Fizzler for HtmlAgilityPack is implemented as the 
// QuerySelectorAll extension method on HtmlNode
var document = htmlDocument.DocumentNode;
// yields: [<p class="content">Fizzler</p>]
document.QuerySelectorAll(".content"); 
// yields: [<p class="content">Fizzler</p>,<p>CSS Selector Engine</p>]
document.QuerySelectorAll("p");
// yields empty sequence
document.QuerySelectorAll("body>p");
// yields [<p class="content">Fizzler</p>,<p>CSS Selector Engine</p>]
document.QuerySelectorAll("body p");
// yields [<p class="content">Fizzler</p>]
document.QuerySelectorAll("p:first-child");

你可以试试这个库,我觉得它很有前途。我自己没有尝试过,所以如果你试一试,也许你想和我们分享你的经验。

图书馆:CsQuery网站:https://github.com/jamietre/CsQuery示例:

// get all elements that are first children within 'body' (e.g. excluding 'head')
var childSpans = dom["body"].Find(":first-child");