Подтвердить что ты не робот

Есть ли реализация Sizzle/jQuery-селекторов в С#?

Мне нужно просто указать элементы из html в моем приложении С#. Я бы просто использовал Linq для Sql, но это нужно настраивать/сериализовать для строки. Я мог бы, конечно, использовать XPath, но что-то вроде Sizzle на данный момент является гораздо более естественным для большинства людей.

Кто-нибудь знает, существует ли реализация Sizzle selectors в .Net?

4b9b3361

Ответ 1

Yepp, Fizzler. Он построен на HtmlAgilityPack и работает очень хорошо, хотя авторы говорят, что это бета-версия. Мы используем его в производстве по крупному проекту. Образцы из документации:

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