|
| Text.XML.Expat.Internal.NodeClass |
|
|
| Description |
| Type classes to allow for XML handling functions to be generalized to
work with different node types, including the ones defined in Tree and
Annotated.
|
|
| Synopsis |
|
| type Attributes tag text = [(tag, text)] | | | type UAttributes text = Attributes text text | | | textContent :: (NodeClass n [], Monoid text) => n [] tag text -> text | | | type family ListOf n | | | class (Functor c, List c) => NodeClass n c where | | | | mapElement :: NodeClass n c => ((tag, [(tag, text)], c (n c tag text)) -> (tag', [(tag', text)], c (n c tag' text))) -> n c tag text -> n c tag' text | | | mapNodeListContainer :: (NodeClass n c, List c') => (forall a. c a -> ItemM c (c' a)) -> c (n c tag text) -> ItemM c (c' (n c' tag text)) | | | fromNodeContainer :: (NodeClass n c, List c') => n c tag text -> ItemM c (n c' tag text) | | | fromNodeListContainer :: (NodeClass n c, List c') => c (n c tag text) -> ItemM c (c' (n c' tag text)) | | | class NodeClass n c => MkElementClass n c where | | | | getAttribute :: (NodeClass n c, GenericXMLString tag) => n c tag text -> tag -> Maybe text | | | setAttribute :: (Eq tag, NodeClass n c, GenericXMLString tag) => tag -> text -> n c tag text -> n c tag text | | | deleteAttribute :: (Eq tag, NodeClass n c, GenericXMLString tag) => tag -> n c tag text -> n c tag text | | | alterAttribute :: (Eq tag, NodeClass n c, GenericXMLString tag) => tag -> Maybe text -> n c tag text -> n c tag text | | | fromElement :: (NodeClass n c, MkElementClass n' c, Monoid tag, Monoid text) => n c tag text -> n' c tag text | | | fromElement_ :: (NodeClass n c, NodeClass n' c, Monoid tag, Monoid text) => (tag -> Attributes tag text -> c (n' c tag text) -> n' c tag text) -> n c tag text -> n' c tag text | | | fromNodes :: (NodeClass n c, MkElementClass n' c, Monoid tag, Monoid text) => c (n c tag text) -> c (n' c tag text) | | | fromNodes_ :: (NodeClass n c, NodeClass n' c, Monoid tag, Monoid text) => (tag -> Attributes tag text -> c (n' c tag text) -> n' c tag text) -> c (n c tag text) -> c (n' c tag text) |
|
|
| Documentation |
|
| type Attributes tag text = [(tag, text)] |
| Type shortcut for attributes
|
|
| type UAttributes text = Attributes text text |
| Type shortcut for attributes with unqualified names where tag and
text are the same string type.
|
|
| textContent :: (NodeClass n [], Monoid text) => n [] tag text -> text |
| Extract all text content from inside a tag into a single string, including
any text contained in children. This excludes the contents of comments or
processing instructions. To get the text for these node types, use getText.
|
|
| type family ListOf n |
| A type function to give the type of a list of nodes, using the appropriate
list type for the specified node type, e.g. ListOf (UNode Text)
|
|
|
| class (Functor c, List c) => NodeClass n c where |
| | Methods | | isElement :: n c tag text -> Bool | | Is the given node an element?
| | | isText :: n c tag text -> Bool | | Is the given node text?
| | | isCData :: n c tag text -> Bool | | Is the given node CData?
| | | isProcessingInstruction :: n c tag text -> Bool | | Is the given node a processing instruction?
| | | isComment :: n c tag text -> Bool | | Is the given node a comment?
| | | textContentM :: Monoid text => n c tag text -> ItemM c text | | Extract all text content from inside a tag into a single string, including
any text contained in children. This excludes the contents of comments or
processing instructions. To get the text for these node types, use getText.
| | | isNamed :: Eq tag => tag -> n c tag text -> Bool | | Is the given node a tag with the given name?
| | | getName :: Monoid tag => n c tag text -> tag | | Get the name of this node if it's an element, return empty string otherwise.
| | | hasTarget :: Eq text => text -> n c tag text -> Bool | | Is the given node a Processing Instruction with the given target?
| | | getTarget :: Monoid text => n c tag text -> text | | Get the target of this node if it's a Processing Instruction, return empty string otherwise.
| | | getAttributes :: n c tag text -> [(tag, text)] | | Get the attributes of a node if it's an element, return empty list otherwise.
| | | getChildren :: n c tag text -> c (n c tag text) | | Get children of a node if it's an element, return empty list otherwise.
| | | getText :: Monoid text => n c tag text -> text | | Get this node's text if it's a text node, comment, or processing instruction,
return empty text otherwise.
| | | modifyName :: (tag -> tag) -> n c tag text -> n c tag text | | Modify name if it's an element, no-op otherwise.
| | | modifyAttributes :: ([(tag, text)] -> [(tag, text)]) -> n c tag text -> n c tag text | | Modify attributes if it's an element, no-op otherwise.
| | | modifyChildren :: (c (n c tag text) -> c (n c tag text)) -> n c tag text -> n c tag text | | Modify children (non-recursively) if it's an element, no-op otherwise.
| | | modifyElement :: ((tag, [(tag, text)], c (n c tag text)) -> (tag', [(tag', text)], c (n c tag' text))) -> n c tag text -> n c tag' text | | Map an element non-recursively, allowing the tag type to be changed.
| | | mapAllTags :: (tag -> tag') -> n c tag text -> n c tag' text | | Map all tags (both tag names and attribute names) recursively.
| | | mapNodeContainer :: List c' => (forall a. c a -> ItemM c (c' a)) -> n c tag text -> ItemM c (n c' tag text) | | Change a node recursively from one container type to another, with a
specified function to convert the container type.
| | | mkText :: text -> n c tag text | | Generic text node constructor.
|
| | Instances | |
|
|
| mapElement :: NodeClass n c => ((tag, [(tag, text)], c (n c tag text)) -> (tag', [(tag', text)], c (n c tag' text))) -> n c tag text -> n c tag' text |
| DEPRECATED. Map an element non-recursively, allowing the tag type to be changed.
|
|
| mapNodeListContainer :: (NodeClass n c, List c') => (forall a. c a -> ItemM c (c' a)) -> c (n c tag text) -> ItemM c (c' (n c' tag text)) |
| Change a list of nodes recursively from one container type to another, with
a specified function to convert the container type.
|
|
| fromNodeContainer :: (NodeClass n c, List c') => n c tag text -> ItemM c (n c' tag text) |
| Change a node recursively from one container type to another. This
extracts the entire tree contents to standard lists and re-constructs them
with the new container type. For monadic list types used in
hexpat-iteratee this operation forces evaluation.
|
|
| fromNodeListContainer :: (NodeClass n c, List c') => c (n c tag text) -> ItemM c (c' (n c' tag text)) |
| Change a list of nodes recursively from one container type to another. This
extracts the entire tree contents to standard lists and re-constructs them
with the new container type. For monadic list types used in
hexpat-iteratee this operation forces evaluation.
|
|
| class NodeClass n c => MkElementClass n c where |
| A class of node types where an Element can be constructed given a tag,
attributes and children.
| | | Methods | | mkElement :: tag -> Attributes tag text -> c (n c tag text) -> n c tag text | | Generic element constructor.
|
| | Instances | |
|
|
| getAttribute :: (NodeClass n c, GenericXMLString tag) => n c tag text -> tag -> Maybe text |
| Get the value of the attribute having the specified name.
|
|
| setAttribute :: (Eq tag, NodeClass n c, GenericXMLString tag) => tag -> text -> n c tag text -> n c tag text |
| Set the value of the attribute with the specified name to the value, overwriting
the first existing attribute with that name if present.
|
|
| deleteAttribute :: (Eq tag, NodeClass n c, GenericXMLString tag) => tag -> n c tag text -> n c tag text |
| Delete the first attribute matching the specified name.
|
|
| alterAttribute :: (Eq tag, NodeClass n c, GenericXMLString tag) => tag -> Maybe text -> n c tag text -> n c tag text |
| setAttribute if Just, deleteAttribute if Nothing.
|
|
| fromElement :: (NodeClass n c, MkElementClass n' c, Monoid tag, Monoid text) => n c tag text -> n' c tag text |
| Generically convert an element of one node type to another. Useful for
adding or removing annotations.
|
|
| fromElement_ |
| :: (NodeClass n c, NodeClass n' c, Monoid tag, Monoid text) | | | => (tag -> Attributes tag text -> c (n' c tag text) -> n' c tag text) | Element constructor
| | -> n c tag text | | | -> n' c tag text | | | Generically convert an element of one node type to another, using
the specified element constructor. Useful for adding or removing annotations.
|
|
|
| fromNodes :: (NodeClass n c, MkElementClass n' c, Monoid tag, Monoid text) => c (n c tag text) -> c (n' c tag text) |
| Generically convert a list of nodes from one node type to another. Useful for
adding or removing annotations.
|
|
| fromNodes_ |
| :: (NodeClass n c, NodeClass n' c, Monoid tag, Monoid text) | | | => (tag -> Attributes tag text -> c (n' c tag text) -> n' c tag text) | Element constructor
| | -> c (n c tag text) | | | -> c (n' c tag text) | | | Generically convert a list of nodes from one node type to another, using
the specified element constructor. Useful for adding or removing annotations.
|
|
|
| Produced by Haddock version 2.7.2 |