.N .NET Landscape

Fizzler

Inactive Documents, Media & Text
github.com/atifaziz/Fizzler

.NET CSS Selector Engine

⚠ No commits for more than 2 years. Consider an actively maintained alternative from the same subcategory.

css
GitHub stars
139
Forks
28
Open issues
15
NuGet downloads
12,899,072
latest 1.3.1
Language
C#
Last push
2 years ago
14 Jul 2024
Created
23 Aug 2015

Fizzler: .NET CSS Selector Engine

Build Status NuGet MyGet

Fizzler is a .NET Standard 1.0 library; it is a W3C Selectors (Level 3) parser and generic selector framework over document hierarchies.

The default implementation is based on HTMLAgilityPack and selects from HTML documents. The unit tests are based on the jQuery selector engine tests.

Contributions are welcome in forms of:

  • Increased selector support
  • Implementation over an HTML-like hierarchical document model
  • Re-factorings
  • Improved tests

Examples

The following example uses Fizzler.Systems.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 = html.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");