Commit bdf6b2de authored by Mael NICOLAS's avatar Mael NICOLAS

correct the date problem

parent 7cd5fed6
......@@ -7,7 +7,7 @@ import qualified Text.XML.Cursor as C -- ((&/), (&//), Cursor, content, element)
import Text.XML (Name)
import Data.Either (rights)
import Data.Maybe (Maybe, fromMaybe)
import Data.Maybe (Maybe, fromJust, fromMaybe)
import Data.Monoid (mconcat)
import Data.Conduit (runConduit, (.|), ConduitT)
import Data.Text (Text, unpack)
......@@ -107,7 +107,7 @@ parsePubMedArticle =
parsePubMedArticle' :: MonadThrow m => ConduitT Event o m PubMed
parsePubMedArticle' = do
article <- force "MedlineCitation" $ tagIgnoreAttrs "MedlineCitation" parseMedlineCitation
dates <- tagIgnoreAttrs "PubmedDate" $ do
dates <- tagIgnoreAttrs "PubmedData" $ do
dates' <- tagIgnoreAttrs "History" $ many $ tagIgnoreAttrs "PubMedPubDate" $ do
y' <- force "Year" $ tagIgnoreAttrs "Year" content
m' <- force "Month" $ tagIgnoreAttrs "Month" content
......@@ -117,7 +117,7 @@ parsePubMedArticle' = do
_ <- many ignoreAnyTreeContent
return dates'
_ <- many ignoreAnyTreeContent
let (y,m,d) = maybe (1,1,1) identity $ join $ fmap head $ reverse <$> join dates
let (y,m,d) = maybe (1,1,1) (fromJust . head) (reverse <$> join dates)
return $ PubMed article (PubMedDate (jour y m d) y m d)
parseMedlineCitation :: MonadThrow m => ConduitT Event o m PubMedArticle
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment