| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Text.XML.Hexml.Lens
Contents
- _children :: Fold Node Node
- _contents :: Fold Node (Either ByteString Node)
- class ChildNode s where
- class TextContents s where
- class Attributes s where
- class AsXML s where
Nodes
_contents :: Fold Node (Either ByteString Node) Source #
Fold over all the children (text and element)
class ChildNode s where Source #
Folds for element nodes
Minimal complete definition
Instances
| ChildNode Int Source # | A fold for accessing a child node by its index |
| ChildNode String Source # | A fold for accessing named children nodes This is a more efficient version of node foo = _children . filtered (\n -> name n == foo) |
| ChildNode ByteString Source # | A fold for accessing named children nodes This is a more efficient version of node foo = _children . filtered (\n -> name n == foo) |
| ChildNode String Source # | A fold for accessing named children nodes This is a more efficient version of node foo = _children . filtered (\n -> name n == foo) |
| ChildNode Text Source # | A fold for accessing named children nodes This is a more efficient version of node foo = _children . filtered (\n -> name n == foo) |
class TextContents s where Source #
Fold for accessing the text contents of a node
Minimal complete definition
Methods
textContents :: Fold Node s Source #
Attributes
class Attributes s where Source #
Optics for accessing attributes
Minimal complete definition
Methods
_Attribute :: s -> Getter Node (Maybe s) Source #
Fold for accessing attributes by name.
iattributes :: IndexedFold String Node s Source #
Name-Indexed fold over the attribute values
Instances
Parsing
Methods
_XML :: Prism' s Node Source #
A prism for parsing and unparsing XML.
unparsing is provided by outer.
>>>"<?xml version=\"1.0\"?><foo/>" ^? _XMLJust Node "<?xml version=\"1.0\"?><foo/>"
Nameless nodes are inserted for trees with >1 root.
>>>"<?xml version=\"1.0\"?><foo/>" ^? _XML.to nameJust ""
>>>"<?xml version=\"1.0\"?><foo/>" ^? _XML.node(0::Int)Just Node "<?xml version=\"1.0\"?>"
>>>"<?xml version=\"1.0\"?><foo/>" ^? _XML.node(1::Int)Just Node "<foo/>"
If the tree has only 1 root, no nameless nodes are inserted.
>>>"<foo/>" ^? _XML.re(_XML @String)._XML.to nameJust "foo"
The law x ^? re _XML . _XML == x doesn't hold for the nameless nodes
injected by parse.
>>>parse "<foo/>" ^? _Right.to nameJust "">>>parse "<foo/>" ^? _Right.re(_XML @String)._XML.to nameJust "foo"