| Portability | portable |
|---|---|
| Stability | experimental |
| Maintainer | Uwe Schmidt (uwe@fh-wedel.de) |
Text.XML.HXT.Arrow.XPathSimple
Description
XPath selection for simple XPath expressions with list arrows instead of navigable trees.
It is recommended, that this module is imported qualified,
e.g like Text.XML.HXT.Arrow.XPathSimple as XS.
The arrows defined in this module have the same
functionality as the functions in Text.XML.HXT.Arrow.XPath.
The computation model in XPath is a navigable tree, that means a tree which can be traversed in arbitrary directions, not only from the root to the leafs. Sometimes this model leads to inefficient XPath processing for simple queries, which only need a top down tree traversal.
When evaluating an XPath expression with these functions, first an attempt is made
to map the XPath expression to a pure arrow. If this is possible
due to the simplicity of the XPath expressions, the result is computed
directly, else the query is processed by the corresponding
function in Text.XML.HXT.Arrow.XPath.
The simple evaluation is possible, when in the XPath expression only the top down axes (self, child, descendant, descendant or self) are used, when no built-in functions concerning the position of a node are used, and no comparison of nodes e.g. in node set union is required.
- getXPathTreesInDoc :: ArrowXml a => String -> a XmlTree XmlTree
- getXPathTreesInDocWithNsEnv :: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
- getXPathTrees :: ArrowXml a => String -> a XmlTree XmlTree
- getXPathTreesWithNsEnv :: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
- tryGetXPath :: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
- getXPathTreesWithNsEnvSimple :: ArrowXml a => Attributes -> String -> a XmlTree XmlTree
- getXP :: NsEnv -> String -> LA XmlTree XmlTree
- type XPArrow b c = Maybe (LA b c)
- mk :: LA b c -> XPArrow b c
- unwrap :: XPArrow b b -> LA b b
- (>>>>) :: XPArrow b b -> XPArrow b b -> XPArrow b b
- (&&&&) :: XPArrow b b -> XPArrow b b -> XPArrow b (b, b)
- (<+>>) :: XPArrow b b -> XPArrow b b -> XPArrow b b
- guards' :: XPArrow b b -> XPArrow b b -> XPArrow b b
- this' :: XPArrow b b
- this'' :: XPArrow b b
- toThis :: XPArrow b b -> XPArrow b b
- getChildren' :: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
- getAttrl' :: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
- multi' :: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
- deep' :: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
- xIndex :: Int -> LA [b] b
- xString :: XPArrow XmlTree XmlTree -> LA XmlTree String
- xNumber' :: XPArrow XmlTree XmlTree -> LA XmlTree XPNumber
- deadEndStreet :: Monad m => m a
- compXPath :: MonadPlus m => Expr -> m (LA XmlTree XmlTree)
- compXP :: MonadPlus m => Expr -> m (XPArrow XmlTree XmlTree)
- compFP :: MonadPlus m => [Expr] -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
- compLP :: MonadPlus m => [XStep] -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
- compXS :: MonadPlus m => XStep -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
- compNTE :: Monad m => NodeTest -> m (XPArrow XmlTree XmlTree)
- compNTA :: Monad m => NodeTest -> m (XPArrow XmlTree XmlTree)
- compNameT :: Monad m => LA XmlTree XmlTree -> QName -> m (XPArrow XmlTree XmlTree)
- compNT :: Monad m => NodeTest -> m (XPArrow XmlTree XmlTree)
- compPred :: MonadPlus m => [Expr] -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
- compPred1 :: MonadPlus m => Expr -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
- compRelPathExpr :: MonadPlus m => Expr -> m (XPArrow XmlTree XmlTree)
- compStringExpr :: MonadPlus m => Expr -> m String
- compNumberExpr :: MonadPlus m => Expr -> m XPNumber
- compIntExpr :: MonadPlus m => Expr -> m Int
- compBoolExpr :: MonadPlus m => Expr -> m Bool
- compGenExpr :: MonadPlus m => Expr -> m (XPArrow XmlTree XmlTree)
- compString :: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
- compNumber :: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
- compBool :: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
- compPath :: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
- toNumber :: String -> XPNumber
- equalNodeSet :: Eq a => [a] -> [a] -> [a]
Documentation
getXPathTreesInDoc :: ArrowXml a => String -> a XmlTree XmlTreeSource
Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc
getXPathTreesInDocWithNsEnv :: ArrowXml a => Attributes -> String -> a XmlTree XmlTreeSource
Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv
getXPathTrees :: ArrowXml a => String -> a XmlTree XmlTreeSource
Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTrees
getXPathTreesWithNsEnv :: ArrowXml a => Attributes -> String -> a XmlTree XmlTreeSource
Same Functionality as Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv
tryGetXPath :: ArrowXml a => Attributes -> String -> a XmlTree XmlTreeSource
getXPathTreesWithNsEnvSimple :: ArrowXml a => Attributes -> String -> a XmlTree XmlTreeSource
The xpath interpreter for simple xpath expressions.
In case of a too complicated or illegal xpath expression an error node is returned, else the list of selected XML trees
deadEndStreet :: Monad m => m aSource
compStringExpr :: MonadPlus m => Expr -> m StringSource
compNumberExpr :: MonadPlus m => Expr -> m XPNumberSource
compIntExpr :: MonadPlus m => Expr -> m IntSource
compBoolExpr :: MonadPlus m => Expr -> m BoolSource
equalNodeSet :: Eq a => [a] -> [a] -> [a]Source