Safe Haskell | None |
---|---|
Language | Haskell2010 |
High-level primitives to parse a stream of XML Event
s.
- tag :: MonadCatch m => (Name -> Maybe a) -> (a -> AttrParser b) -> (b -> ConduitParser Event m c) -> ConduitParser Event m c
- tagName :: MonadCatch m => Name -> AttrParser a -> (a -> ConduitParser Event m b) -> ConduitParser Event m b
- tagPredicate :: MonadCatch m => (Name -> Bool) -> AttrParser a -> (a -> ConduitParser Event m b) -> ConduitParser Event m b
- tagNoAttr :: MonadCatch m => Name -> ConduitParser Event m a -> ConduitParser Event m a
- type AttributeMap = Map Name [Content]
- data AttrParser a
- attr :: Name -> (Text -> Maybe a) -> AttrParser a
- textAttr :: Name -> AttrParser Text
- ignoreAttrs :: AttrParser ()
- content :: MonadCatch m => (Text -> Maybe a) -> ConduitParser Event m a
- textContent :: MonadCatch m => ConduitParser Event m Text
- parseBytes :: MonadThrow m => ParseSettings -> Conduit ByteString m Event
- parseBytesPos :: MonadThrow m => ParseSettings -> Conduit ByteString m EventPos
- parseText :: MonadThrow m => ParseSettings -> Conduit Text m Event
- parseTextPos :: MonadThrow m => ParseSettings -> Conduit Text m EventPos
- detectUtf :: MonadThrow m => Conduit ByteString m Text
- parseFile :: MonadResource m => ParseSettings -> FilePath -> Producer m Event
- parseLBS :: MonadThrow m => ParseSettings -> ByteString -> Producer m Event
- data ParseSettings :: *
- type DecodeEntities = Text -> Content
- psDecodeEntities :: ParseSettings -> DecodeEntities
- psRetainNamespaces :: ParseSettings -> Bool
- decodeXmlEntities :: DecodeEntities
- decodeHtmlEntities :: DecodeEntities
- data XmlException :: *
- = XmlException {
- xmlErrorMessage :: String
- xmlBadInput :: Maybe Event
- | InvalidEndElement Name
- | InvalidEntity Text
- | UnparsedAttributes [(Name, [Content])]
- = XmlException {
XML parsers
Tags
:: MonadCatch m | |
=> (Name -> Maybe a) | Tag name parser. |
-> (a -> AttrParser b) | Attributes parser. It should consume all available attributes. |
-> (b -> ConduitParser Event m c) | Children parser. It should consume all elements between the opening and closing tags. |
-> ConduitParser Event m c |
Parse an XML tag. This is the most generic tag parser.
Comments, instructions and whitespace are ignored.
tagName :: MonadCatch m => Name -> AttrParser a -> (a -> ConduitParser Event m b) -> ConduitParser Event m b
Like tag
, but match a single tag name.
tagPredicate :: MonadCatch m => (Name -> Bool) -> AttrParser a -> (a -> ConduitParser Event m b) -> ConduitParser Event m b
Like tag
, but use a predicate to select tag names.
tagNoAttr :: MonadCatch m => Name -> ConduitParser Event m a -> ConduitParser Event m a
Like tagName
, but expect no attributes at all.
Attributes
type AttributeMap = Map Name [Content]
data AttrParser a
Monad AttrParser | |
Functor AttrParser | |
Applicative AttrParser | |
Alternative AttrParser | Attribute parsers can be combined with ( |
MonadThrow AttrParser |
attr :: Name -> (Text -> Maybe a) -> AttrParser a
Parse a single attribute using a custom parsing function.
textAttr :: Name -> AttrParser Text
Parse a single textual attribute.
ignoreAttrs :: AttrParser ()
Consume all remaining unparsed attributes.
Content
content :: MonadCatch m => (Text -> Maybe a) -> ConduitParser Event m a
Parse a tag content using a custom parsing function.
textContent :: MonadCatch m => ConduitParser Event m Text
Parse a tag content as Text
.
Re-exports
Event producers
parseBytes :: MonadThrow m => ParseSettings -> Conduit ByteString m Event
parseBytesPos :: MonadThrow m => ParseSettings -> Conduit ByteString m EventPos
parseText :: MonadThrow m => ParseSettings -> Conduit Text m Event
Alias for parseText'
parseTextPos :: MonadThrow m => ParseSettings -> Conduit Text m EventPos
detectUtf :: MonadThrow m => Conduit ByteString m Text
parseFile :: MonadResource m => ParseSettings -> FilePath -> Producer m Event
parseLBS :: MonadThrow m => ParseSettings -> ByteString -> Producer m Event
Parser settings
data ParseSettings :: *
Default ParseSettings |
type DecodeEntities = Text -> Content
Entity decoding
Exceptions
data XmlException :: *
XmlException | |
| |
InvalidEndElement Name | |
InvalidEntity Text | |
UnparsedAttributes [(Name, [Content])] |