- data Document = Document {}
- data Prologue = Prologue {}
- data Instruction = Instruction {}
- data Miscellaneous
- data Node
- data Element = Element {
- elementName :: Name
- elementAttributes :: [Attribute]
- elementNodes :: [Node]
- data Attribute = Attribute {
- attributeName :: Name
- attributeContent :: [Content]
- data Content
- data Name = Name {}
- class Named a where
- data Doctype = Doctype {}
- data ExternalID
- data InternalSubset
- data Event
- isElement :: Node -> [Element]
- isInstruction :: Node -> [Instruction]
- isContent :: Node -> [Content]
- isComment :: Node -> [Text]
- isNamed :: Named a => Name -> a -> [a]
- nodeChildren :: Node -> [Node]
- elementChildren :: Element -> [Element]
- hasAttribute :: (Attribute -> [Attribute]) -> Element -> [Element]
- position :: Integer -> (a -> [b]) -> a -> [b]
Types
Document prologue
data Instruction Source
data Miscellaneous Source
Document body
Element | |
|
The Eq
instance for Name
ignores prefixes.
The IsString
instance for Name
allows entry using Clark notation;
see http://www.jclark.com/xml/xmlns.htm and
http://infohost.nmt.edu/tcc/help/pubs/pylxml/etree-QName.html
Name | |
|
Doctypes
Incremental processing
Some XML processing tools are incremental, and work in terms of events rather than node trees. Defining the event type here, even though it won't be useful to most users, allows these packages to interoperate more easily.
Predicates
isInstruction :: Node -> [Instruction]Source
Filters
nodeChildren :: Node -> [Node]Source
elementChildren :: Element -> [Element]Source