xml-conduit-parse-0.2.0.0: Streaming XML parser based on conduits.

Safe HaskellNone
LanguageHaskell2010

Data.Conduit.Parser.XML

Contents

Description

High-level primitives to parse a stream of XML Events.

Synopsis

XML parsers

Tags

tag

Arguments

:: 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

Instances

Monad AttrParser 
Functor AttrParser 
Applicative AttrParser 
Alternative AttrParser

Attribute parsers can be combined with (<|>), some, many, optional, choice, etc.

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 :: *

Instances

Default ParseSettings 

type DecodeEntities = Text -> Content

Entity decoding

Exceptions

data XmlException :: *

Constructors

XmlException 
InvalidEndElement Name 
InvalidEntity Text 
UnparsedAttributes [(Name, [Content])]