<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Text.XML.HaXml.Xtract.Combinators</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock.js" TYPE="text/javascript" ></SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >HaXml-1.13.2: Utilities for manipulating XML documents</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Text.XML.HaXml.Xtract.Combinators</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >This is a new set of XML combinators for Xtract, not standard, but based on the standard set in <A HREF="Text-Xml-Haxml-Combinators.html" >Text.Xml.Haxml.Combinators</A >. The main difference is that the Content Filter type becomes a Double Filter. A Double Filter always takes the whole document as an extra argument, so you can start to traverse it again from any inner location within the document tree. </P ><P >The new combinators definitions are derived from the old ones. New names are derived from the old by surrounding with the letter <TT >o</TT >, or by doubling the operator symbols. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADFilter" >DFilter</A > = <A HREF="Text-XML-HaXml-Types.html#t%3AContent" >Content</A > -> <A HREF="Text-XML-HaXml-Types.html#t%3AContent" >Content</A > -> [<A HREF="Text-XML-HaXml-Types.html#t%3AContent" >Content</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alocal" >local</A > :: <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aglobal" >global</A > :: <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Adfilter" >dfilter</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aoloco" >oloco</A > :: (<A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aoglobo" >oglobo</A > :: (<A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aooo" >ooo</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%7C%7C%3E%7C%7C" >(||>||)</A > :: (a -> b -> [c]) -> (a -> b -> [c]) -> a -> b -> [c]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aowitho" >owitho</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aowithouto" >owithouto</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aokeepo" >okeepo</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aononeo" >ononeo</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aochildreno" >ochildreno</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aoelmo" >oelmo</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aotxto" >otxto</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aapplypred" >applypred</A > :: <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aoiffindo" >oiffindo</A > :: String -> (String -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AoifTxto" >oifTxto</A > :: (String -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aocato" >ocato</A > :: [a -> b -> [c]] -> a -> b -> [c]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%2F%2F%3E%3E" >(//>>)</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%3C%2F%2F" >(<<//)</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aodeepo" >odeepo</A > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t%3ADFilter" ></A ><B >DFilter</B > = <A HREF="Text-XML-HaXml-Types.html#t%3AContent" >Content</A > -> <A HREF="Text-XML-HaXml-Types.html#t%3AContent" >Content</A > -> [<A HREF="Text-XML-HaXml-Types.html#t%3AContent" >Content</A >]</TD ></TR ><TR ><TD CLASS="doc" >double content filter - takes document root + local subtree. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Alocal" ></A ><B >local</B > :: <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="doc" >lift an ordinary content filter to a double filter. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aglobal" ></A ><B >global</B > :: <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Adfilter" ></A ><B >dfilter</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A ></TD ></TR ><TR ><TD CLASS="doc" >drop a double filter to an ordinary content filter </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aoloco" ></A ><B >oloco</B > :: (<A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="doc" >lift a CFilter combinator to a DFilter combinator </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aoglobo" ></A ><B >oglobo</B > :: (<A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aooo" ></A ><B >ooo</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="doc" >lifted composition over double filters. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3A%7C%7C%3E%7C%7C" ></A ><B >(||>||)</B > :: (a -> b -> [c]) -> (a -> b -> [c]) -> a -> b -> [c]</TD ></TR ><TR ><TD CLASS="doc" >lifted choice. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aowitho" ></A ><B >owitho</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="doc" >lifted predicates. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aowithouto" ></A ><B >owithouto</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aokeepo" ></A ><B >okeepo</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="doc" >lifted unit and zero. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aononeo" ></A ><B >ononeo</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aochildreno" ></A ><B >ochildreno</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aoelmo" ></A ><B >oelmo</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aotxto" ></A ><B >otxto</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aapplypred" ></A ><B >applypred</B > :: <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Combinators.html#t%3ACFilter" >CFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aoiffindo" ></A ><B >oiffindo</B > :: String -> (String -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3AoifTxto" ></A ><B >oifTxto</B > :: (String -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A >) -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aocato" ></A ><B >ocato</B > :: [a -> b -> [c]] -> a -> b -> [c]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3A%2F%2F%3E%3E" ></A ><B >(//>>)</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3A%3C%3C%2F%2F" ></A ><B >(<<//)</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aodeepo" ></A ><B >odeepo</B > :: <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A > -> <A HREF="Text-XML-HaXml-Xtract-Combinators.html#t%3ADFilter" >DFilter</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 0.8</TD ></TR ></TABLE ></BODY ></HTML >