Safe Haskell | None |
---|---|
Language | Haskell2010 |
Deprecated: in favor of XParse
Backtracking combinators for consuming XML productions (elements, attributes).
Synopsis
- type XParser m = (Alternative m, MonadState [Element] m, MonadError String m)
- parseX :: Monad m => StateT [Element] (ExceptT String m) b -> Element -> m (Either String b)
- peek :: XParser m => m Element
- push :: XParser m => Element -> m ()
- pop :: XParser m => m ()
- checkStack :: XParser m => m [Element]
- atEl :: XParser m => QName -> m ()
- findChild :: XParser m => QName -> m a -> m a
- findChildren :: XParser m => QName -> m a -> m [a]
- anyChildren :: XParser m => m a -> m [a]
- oneChild :: XParser m => m a -> m a
- allChildren :: XParser m => m a -> m [a]
- manyOrdered :: XParser m => m a -> m [a]
- attr :: XParser m => QName -> m String
- textContent :: XParser m => m String
- name :: String -> QName
- xsName :: String -> QName
- readXml :: FilePath -> IO Element
XParser monad
type XParser m = (Alternative m, MonadState [Element] m, MonadError String m) Source #
Stack entry tracking identified elements.
XParser constraint kind. Stack state + alternative + errors.
parseX :: Monad m => StateT [Element] (ExceptT String m) b -> Element -> m (Either String b) Source #
run XParser on an element.
Stack manipulation
checkStack :: XParser m => m [Element] Source #
Verify populated stack.
Element operations
findChildren :: XParser m => QName -> m a -> m [a] Source #
Find zero or many children and act on them.
anyChildren :: XParser m => m a -> m [a] Source #
Run optional action on all children.
allChildren :: XParser m => m a -> m [a] Source #
Act on all children.
manyOrdered :: XParser m => m a -> m [a] Source #
Flailing attempt to restore "order" by faking a single-child element one at a time.
Attribute/Text operations
textContent :: XParser m => m String Source #
Get text content, returning empty string if none, per strContent
.