HORIZON HASKELLDocslts/ghc-9.14.x3e2d5682026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

Moduleyesod-test-1.7.0.3Haskell2010

Yesod.Test.TransversingCSS

This module uses HXT to transverse an HTML document using CSS selectors.

The most important function here is findBySelector, it takes a CSS query and a string containing the HTML to look into, and it returns a list of the HTML fragments that matched the given query.

Only a subset of the CSS spec is currently supported:

  • By tag name: table td a

  • By class names: .container .content

  • By Id: #oneId

  • By attribute: [hasIt], [exact=match], [contains*=text], [starts^=with], [ends$=with]

  • Union: a, span, p

  • Immediate children: div > p

  • Get jiggy with it: div[data-attr=yeah] > .mon, .foo.bar div, #oneThing

  • 4 types
  • 4 values

For HXT hackers

4 declarations

These functions expose some low level details that you can blissfully ignore.

Parses a query into an intermediate format which is easy to feed to HXT

  • The top-level lists represent the top level comma separated queries.

  • SelectorGroup is a group of qualifiers which are separated with spaces or > like these three: table.main.odd tr.even > td.big

  • A SelectorGroup as a list of Selector items, following the above example the selectors in the group are: table, .main and .odd