Safe Haskell | None |
---|
The module provides some common XML tree parsing combinators. There are two main groups of combinators: XPath-like combinators and tag/forest combinators. Use combinators from the first group if possible, since they are generally easier too use and generate results in a lazy manner.
The second class contains more powerful combinators which can be used to parse the contents of an XML node in a generic way. Note, that combinators from the two groups can be interleaved -- you can use a forest parser to construct a tree predicate, but you can also use a tree predicate as an elementary forest parser (see the Text.XML.PolySoup.Parser module).
- node :: Q (Tag s) a -> Q (XmlTree s) a
- (>/>) :: Q (Tag s) a -> (a -> Q (XmlTree s) b) -> Q (XmlTree s) [b]
- (</>) :: Q (Tag s) a -> Q (XmlTree s) b -> Q (XmlTree s) (a, [b])
- (/>) :: Q (Tag s) a -> Q (XmlTree s) b -> Q (XmlTree s) [b]
- (//>) :: Q (Tag s) a -> Q (XmlTree s) b -> Q (XmlTree s) [b]
- join :: Q (Tag s) a -> (a -> P (XmlTree s) b) -> Q (XmlTree s) b
- joinP :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) (a, b)
- joinL :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) a
- joinR :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) b
- (>^>) :: Q (Tag s) a -> (a -> P (XmlTree s) b) -> Q (XmlTree s) b
- (<^>) :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) (a, b)
- (^>) :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) b
- (<^) :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) a
Predicate conversion
XPath-like combinators
(>/>) :: Q (Tag s) a -> (a -> Q (XmlTree s) b) -> Q (XmlTree s) [b]Source
Combine a tag predicate with an XML predicate. The XML predicate can depend on the value of tag parser and will be called multiple times for tag children elements.
(</>) :: Q (Tag s) a -> Q (XmlTree s) b -> Q (XmlTree s) (a, [b])Source
Combine the tag parser with the XML parser. The XML parser will be called multiple times for tag children elements.
(/>) :: Q (Tag s) a -> Q (XmlTree s) b -> Q (XmlTree s) [b]Source
Combine the tag parser with the XML parser. The XML parser will be called multiple times for tag children elements.
(//>) :: Q (Tag s) a -> Q (XmlTree s) b -> Q (XmlTree s) [b]Source
Similar to />
combinator but runs the XML parser for all
descendant XML elements, not only for its children.
Tag/forest parsing combinators
join :: Q (Tag s) a -> (a -> P (XmlTree s) b) -> Q (XmlTree s) bSource
Combine the tag predicate with the forest parser which will be used to parse contents of the tag element.
joinP :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) (a, b)Source
Combine the tag predicate with the forest parser which will be used to parse contents of the tag element.
joinL :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) aSource
Combine the tag predicate with the orest parser which will be used to parse contents of the tag element. Only results of the tag predicate will be returned (the contents have to be successfully parsed, though).
joinR :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) bSource
Combine the tag predicate with the orest parser which will be used to parse contents of the tag element. Only results of the forest parser will be returned.
(>^>) :: Q (Tag s) a -> (a -> P (XmlTree s) b) -> Q (XmlTree s) bSource
Infix version of the join combinators.
(<^>) :: Q (Tag s) a -> P (XmlTree s) b -> Q (XmlTree s) (a, b)Source
Infix version of the joinP combinators.