Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 6c85566fec64e7041dd42427dd724811 > files > 37

ghc-tagsoup-devel-0.12-4.fc14.i686.rpm

<!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.HTML.TagSoup.Tree</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Text-HTML-TagSoup-Tree.html")};</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"
>tagsoup-0.12: Parsing and extracting information from (possibly malformed) HTML/XML documents</TD
><TD CLASS="topbut"
><A HREF="src/Text-HTML-TagSoup-Tree.html"
>Source code</A
></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.HTML.TagSoup.Tree</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
><EM
>NOTE</EM
>: This module is preliminary and may change at a future date.
</P
><P
>This module is intended to help converting a list of tags into a
    tree of tags.
</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"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ATagTree"
>TagTree</A
> str </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ATagBranch"
>TagBranch</A
> str [<A HREF="Text-HTML-TagSoup.html#t%3AAttribute"
>Attribute</A
> str] [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ATagLeaf"
>TagLeaf</A
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtagTree"
>tagTree</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AflattenTree"
>flattenTree</A
> ::  [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtransformTree"
>transformTree</A
> ::  (<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]) -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuniverseTree"
>universeTree</A
> ::  [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</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="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:TagTree"
><A NAME="t%3ATagTree"
></A
></A
><B
>TagTree</B
> str </TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Tree.html#TagTree"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:TagBranch"
><A NAME="v%3ATagBranch"
></A
></A
><B
>TagBranch</B
> str [<A HREF="Text-HTML-TagSoup.html#t%3AAttribute"
>Attribute</A
> str] [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:TagLeaf"
><A NAME="v%3ATagLeaf"
></A
></A
><B
>TagLeaf</B
> (<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str)</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TagTree')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:TagTree" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> str =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:tagTree"
><A NAME="v%3AtagTree"
></A
></A
><B
>tagTree</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> str =&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Tree.html#tagTree"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Convert a list of tags into a tree. This version is not lazy at
   all, that is saved for version 2.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:flattenTree"
><A NAME="v%3AflattenTree"
></A
></A
><B
>flattenTree</B
> ::  [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup.html#t%3ATag"
>Tag</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Tree.html#flattenTree"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:transformTree"
><A NAME="v%3AtransformTree"
></A
></A
><B
>transformTree</B
> ::  (<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]) -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Tree.html#transformTree"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>This operation is based on the Uniplate <TT
>transform</TT
> function. Given a
   list of trees, it applies the function to every tree in a bottom-up
   manner. This operation is useful for manipulating a tree - for example
   to make all tag names upper case:
</P
><PRE
> upperCase = transformTree f
   where f (TagBranch name atts inner) = [TagBranch (map toUpper name) atts inner]
         f x = x
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:universeTree"
><A NAME="v%3AuniverseTree"
></A
></A
><B
>universeTree</B
> ::  [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str] -&gt; [<A HREF="Text-HTML-TagSoup-Tree.html#t%3ATagTree"
>TagTree</A
> str]</TD
><TD CLASS="declbut"
><A HREF="src/Text-HTML-TagSoup-Tree.html#universeTree"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>This operation is based on the Uniplate <TT
>universe</TT
> function. Given a
   list of trees, it returns those trees, and all the children trees at
   any level. For example:
</P
><PRE
> universeTree
    [TagBranch &quot;a&quot; [(&quot;href&quot;,&quot;url&quot;)] [TagBranch &quot;b&quot; [] [TagLeaf (TagText &quot;text&quot;)]]]
 == [TagBranch &quot;a&quot; [(&quot;href&quot;,&quot;url&quot;)] [TagBranch &quot;b&quot; [] [TagLeaf (TagText &quot;text&quot;)]]]
    ,TagBranch &quot;b&quot; [] [TagLeaf (TagText &quot;text&quot;)]]
</PRE
><P
>This operation is particularly useful for queries. To collect all <TT
>&quot;a&quot;</TT
>
   tags in a tree, simply do:
</P
><PRE
> [x | x@(TagTree &quot;a&quot; _ _) &lt;- universeTree tree]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>