xml-conduit-selectors-0.2.0.0: jQuery-style CSS selectors for xml-conduit
Safe HaskellNone
LanguageHaskell2010

Text.XML.Selectors.Types

Description

 
Synopsis

Documentation

data Selector Source #

Node-level selectors and combinators

Constructors

None 
Any
*
Append Selector Selector

ab (both a and b must match)

Elem Name
div
Attrib AttribSelector
a[...]
Descendant

(whitespace)

Child
>
Sibling
~
NextSibling
+
FirstChild
:first-child
LastChild
:last-child
NthChild Int
:nth-child(n); :nth-last-child(-n)
Choice [Selector]
a,b,...
Having Selector
:has(b)
Not Selector
:not(b)

Instances

Instances details
Show Selector Source # 
Instance details

Defined in Text.XML.Selectors.Types

Semigroup Selector Source #

The Semigroup of selectors combines selectors with Append. a <> b selects all nodes that match a and also match b. Note however that the <> operator culls redundant combinations with the Any selector, e.g. Any <> Child <> Any is just Child, not Append Any (Append Child Any).

Instance details

Defined in Text.XML.Selectors.Types

Monoid Selector Source #

The Monoid instance, just like Semigroup, combines selectors with Append; the neutral value is, of course, Any.

Instance details

Defined in Text.XML.Selectors.Types

(<||>) :: Selector -> Selector -> Selector infixl 3 Source #

An alternative semigroup of selectors, representing choice. a <||> b selects all nodes that match a and also all nodes that match b. In other words: a <||> b == Choice a b. Note however that the <||> operator culls redundant applications of Choice, e.g., a <||> b <||> c becomes Choice [a, b, c] rather than Choice [a, Choice [b, c]]. This alternative semigroup could be extended into a monoid, with the empty choice (Choice []) as the neutral value, but we were far too lazy to add that.

data AttribSelector Source #

Attribute-level selectors

Constructors

AttribExists Name
[attr]
AttribIs Name Text
[attr=blah]
AttribIsNot Name Text
[attr!=blah]
AttribStartsWith Name Text
[attr^=blah]
AttribEndsWith Name Text
[attr$=blah]
AttribContains Name Text
[attr*=blah]
AttribContainsWord Name Text
[attr~=blah]
AttribContainsPrefix Name Text
[attr|=blah]