HaXml-1.20.1: Utilities for manipulating XML documentsSource codeContentsIndex
Text.XML.HaXml.Xtract.Combinators
Description

This is a new set of XML combinators for Xtract, not standard, but based on the standard set in Text.Xml.Haxml.Combinators. The main difference is that the Content Filter type becomes a Double Filter. A Double Filter always takes the whole document as an extra argument, so you can start to traverse it again from the root, when at any inner location within the document tree.

The new combinator definitions are derived from the old ones. The same names have the equivalent meaning - use module qualification on imports to distinguish between CFilter and DFilter variations.

Synopsis
type DFilter i = Content i -> Content i -> [Content i]
global :: CFilter i -> DFilter i
local :: CFilter i -> DFilter i
dfilter :: DFilter i -> CFilter i
cfilter :: DFilter i -> CFilter i
liftGlobal :: (CFilter i -> CFilter i) -> DFilter i -> DFilter i
liftLocal :: (CFilter i -> CFilter i) -> DFilter i -> DFilter i
o :: DFilter i -> DFilter i -> DFilter i
(|>|) :: (a -> b -> [c]) -> (a -> b -> [c]) -> a -> b -> [c]
union :: (a -> b -> [c]) -> (a -> b -> [c]) -> a -> b -> [c]
without :: DFilter i -> DFilter i -> DFilter i
with :: DFilter i -> DFilter i -> DFilter i
none :: DFilter i
keep :: DFilter i
elm :: DFilter i
txt :: DFilter i
children :: DFilter i
applypred :: CFilter i -> DFilter i -> CFilter i
iffind :: String -> (String -> DFilter i) -> DFilter i -> DFilter i
ifTxt :: (String -> DFilter i) -> DFilter i -> DFilter i
cat :: [a -> b -> [c]] -> a -> b -> [c]
(/>) :: DFilter i -> DFilter i -> DFilter i
(</) :: DFilter i -> DFilter i -> DFilter i
deepest :: DFilter i -> DFilter i
multi :: DFilter i -> DFilter i
deep :: DFilter i -> DFilter i
Documentation
type DFilter i = Content i -> Content i -> [Content i]Source
double content filter - takes document root + local subtree.
global :: CFilter i -> DFilter iSource
lift an ordinary content filter to a double filter.
local :: CFilter i -> DFilter iSource
dfilter :: DFilter i -> CFilter iSource
drop a double filter to an ordinary content filter. (permitting interior access to document root)
cfilter :: DFilter i -> CFilter iSource
drop a double filter to an ordinary content filter. (Where interior access to the document root is not needed, the retaining pointer to the outer element can be pruned away. cfilter is more space-efficient than dfilter in this situation.)
liftGlobal :: (CFilter i -> CFilter i) -> DFilter i -> DFilter iSource
lift a CFilter combinator to a DFilter combinator
liftLocal :: (CFilter i -> CFilter i) -> DFilter i -> DFilter iSource
o :: DFilter i -> DFilter i -> DFilter iSource
lifted composition over double filters.
(|>|) :: (a -> b -> [c]) -> (a -> b -> [c]) -> a -> b -> [c]Source
lifted choice.
union :: (a -> b -> [c]) -> (a -> b -> [c]) -> a -> b -> [c]Source
lifted union.
without :: DFilter i -> DFilter i -> DFilter iSource
lifted predicates.
with :: DFilter i -> DFilter i -> DFilter iSource
none :: DFilter iSource
lifted unit and zero.
keep :: DFilter iSource
elm :: DFilter iSource
txt :: DFilter iSource
children :: DFilter iSource
applypred :: CFilter i -> DFilter i -> CFilter iSource
iffind :: String -> (String -> DFilter i) -> DFilter i -> DFilter iSource
ifTxt :: (String -> DFilter i) -> DFilter i -> DFilter iSource
cat :: [a -> b -> [c]] -> a -> b -> [c]Source
(/>) :: DFilter i -> DFilter i -> DFilter iSource
(</) :: DFilter i -> DFilter i -> DFilter iSource
deepest :: DFilter i -> DFilter iSource
multi :: DFilter i -> DFilter iSource
deep :: DFilter i -> DFilter iSource
Produced by Haddock version 2.6.0