5

现在我正在使用HtmlAgilityPack.

但是 Xpath 很难选择。

在 Java 中我知道Jsoup。有没有相同的.net 库?

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

4

2 回答 2

6

使用 HtmlAgilityPack尝试Fizzler

菲兹勒是:

一个 .NET 库,用于基于 CSS 选择器从节点树中选择项目。默认实现基于 HTMLAgilityPack 并从 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");
于 2013-03-03T20:57:35.067 回答
2

你可以试试这个库,它对我来说很有希望。我自己没有尝试过,所以如果您尝试使用该库,也许您想与我们分享您的经验。

库: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");
于 2013-03-03T21:00:12.213 回答