HASKELLでRSSファイルを解析するときにタグがミスされている場合

StackOverflow https://stackoverflow.com//questions/10666068

  •  11-12-2019
  •  | 
  •  

質問

HaskellでRSSファイルを解析する必要があります。

atTag tag = deep (isElem >>> hasName tag)
getRSSDetails = atTag "channel" >>>
   proc p -> do 
      fTitle         <- gotoAndTake "title"        -< p
      fLink          <- gotoAndTake "link"         -< p
      fDescription   <- gotoAndTake "description"  -< p
      fLanguage      <- gotoAndTake "language"     -< p
      fGenerator     <- gotoAndTake "generator"    -< p
      fCopyright     <- gotoAndTake "copyright"    -< p
      fWebMaster     <- gotoAndTake "webMaster"    -< p
      fLastBuildDate <- gotoAndTake "lastBuildDate" -< p
                where gotoAndTake a = (getChildren >>> 
                          isElem >>> 
                          hasName a >>> 
                          getChildren >>> 
                          getText)
.

私の問題は、あるタグが欠けているときに、空のリストを取得するよりもRSSファイルから「LastBuildDate」と言ってみましょう。

どうすればいいですか?ありがとう、

main = do
   rssFeeds <- runX (parseRSS "rss.xml" >>> getRSSDetails)
   print rssFeeds
.

EDIT1:加算により解決しました Gotoandtake A ... の終わりにorElse(consta "")

役に立ちましたか?

解決

を追加して解決しました
orElse (constA "") 
. の終わりにP>
where gotoAndTake a = (getChildren >>> 
                   isElem >>> 
                   hasName a >>> 
                   getChildren >>> 
                   getText)
.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top