1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
{-# LANGUAGE OverloadedStrings #-}
import Text.XML.Expat.Tree
import Control.Monad
import Data.Text (Text)
import qualified Data.Text as T
import Data.ByteString (ByteString)
import qualified Data.ByteString.Lazy as L
import Data.Maybe
-- Reads the contents of ROADS.xml from stdin
main :: IO ()
main = do
bs <- L.getContents
let Element _ _ chs = parseThrowing defaultParseOptions bs :: UNode Text
forM_ chs $ \ch -> do
case ch of
elt@(Element "shape" _ _) -> do
putStrLn $ T.unpack $ fromMaybe "" $ getAttribute elt "FULL_NAME"
_ -> return ()
|