用CSS选择器寻找C#Html解析器

时间:2013-03-03 20:51:29

标签: c# java html

现在我正在使用HtmlAgilityPack

但很难通过Xpath选择。

在Java中我知道Jsoup。是否有任何相同的.net库?

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

2 个答案:

答案 0 :(得分:5)

使用HtmlAgilityPack尝试Fizzler

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");

答案 1 :(得分: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");