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) ...@@ -7,7 +7,7 @@ import qualified Text.XML.Cursor as C -- ((&/), (&//), Cursor, content, element)
import Text.XML (Name) import Text.XML (Name)
import Data.Either (rights) import Data.Either (rights)
import Data.Maybe (Maybe, fromMaybe) import Data.Maybe (Maybe, fromJust, fromMaybe)
import Data.Monoid (mconcat) import Data.Monoid (mconcat)
import Data.Conduit (runConduit, (.|), ConduitT) import Data.Conduit (runConduit, (.|), ConduitT)
import Data.Text (Text, unpack) import Data.Text (Text, unpack)
...@@ -107,7 +107,7 @@ parsePubMedArticle = ...@@ -107,7 +107,7 @@ parsePubMedArticle =
parsePubMedArticle' :: MonadThrow m => ConduitT Event o m PubMed parsePubMedArticle' :: MonadThrow m => ConduitT Event o m PubMed
parsePubMedArticle' = do parsePubMedArticle' = do
article <- force "MedlineCitation" $ tagIgnoreAttrs "MedlineCitation" parseMedlineCitation article <- force "MedlineCitation" $ tagIgnoreAttrs "MedlineCitation" parseMedlineCitation
dates <- tagIgnoreAttrs "PubmedDate" $ do dates <- tagIgnoreAttrs "PubmedData" $ do
dates' <- tagIgnoreAttrs "History" $ many $ tagIgnoreAttrs "PubMedPubDate" $ do dates' <- tagIgnoreAttrs "History" $ many $ tagIgnoreAttrs "PubMedPubDate" $ do
y' <- force "Year" $ tagIgnoreAttrs "Year" content y' <- force "Year" $ tagIgnoreAttrs "Year" content
m' <- force "Month" $ tagIgnoreAttrs "Month" content m' <- force "Month" $ tagIgnoreAttrs "Month" content
...@@ -117,7 +117,7 @@ parsePubMedArticle' = do ...@@ -117,7 +117,7 @@ parsePubMedArticle' = do
_ <- many ignoreAnyTreeContent _ <- many ignoreAnyTreeContent
return dates' return dates'
_ <- many ignoreAnyTreeContent _ <- 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) return $ PubMed article (PubMedDate (jour y m d) y m d)
parseMedlineCitation :: MonadThrow m => ConduitT Event o m PubMedArticle 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