module Text.HTML.WraXML.Table where
import qualified Text.XML.WraXML.Tree as XmlTree
import qualified Text.XML.WraXML.Element as Elem
import qualified Text.XML.Basic.Name as Name
import Data.Maybe(mapMaybe)
type T i name str = [[[XmlTree.T i name str]]]
simpleFromRows ::
(Name.Tag name) =>
[XmlTree.T i name str] -> T i name str
simpleFromRows :: forall name i str. Tag name => [T i name str] -> T i name str
simpleFromRows =
forall a b. (a -> b) -> [a] -> [b]
map (forall name i str. Tag name => [T i name str] -> [[T i name str]]
simpleFromRow forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a, b) -> b
snd) forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a. (a -> Bool) -> [a] -> [a]
filter (forall name str. (Name name -> Bool) -> T name str -> Bool
Elem.checkName (forall name. C name => String -> name -> Bool
Name.match String
"tr") forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a, b) -> a
fst) forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe forall i name str.
T i name str -> Maybe (T name str, [T i name str])
XmlTree.maybeTag
simpleFromRow ::
(Name.Tag name) =>
[XmlTree.T i name str] -> [[XmlTree.T i name str]]
simpleFromRow :: forall name i str. Tag name => [T i name str] -> [[T i name str]]
simpleFromRow =
forall a b. (a -> b) -> [a] -> [b]
map forall a b. (a, b) -> b
snd forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a. (a -> Bool) -> [a] -> [a]
filter (forall name str. (Name name -> Bool) -> T name str -> Bool
Elem.checkName (forall name. C name => [String] -> name -> Bool
Name.matchAny [String
"th",String
"td"]) forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a, b) -> a
fst) forall b c a. (b -> c) -> (a -> b) -> a -> c
.
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe forall i name str.
T i name str -> Maybe (T name str, [T i name str])
XmlTree.maybeTag