使用HXT解析Haskell中的RSS文件时,如果标记未命中
我必须在Haskell中解析一个RSS文件,并执行以下操作:使用HXT解析Haskell中的RSS文件时,如果标记未命中,haskell,rss,hxt,Haskell,Rss,Hxt,我必须在Haskell中解析一个RSS文件,并执行以下操作: atTag tag = deep (isElem >>> hasName tag) getRSSDetails = atTag "channel" >>> proc p -> do fTitle <- gotoAndTake "title" -< p fLink <- gotoAndTake "l
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)
atTag tag=deep(isElem>>>hasName标记)
getRSSDetails=atTag“channel”>>>
程序p->do
fTitle>
获取儿童>>>
getText)
我的问题是,当一个标记丢失时,比如说RSS文件中的“lastBuildDate”,我会得到一个空列表,但我只想用“”替换该项
我该怎么做??谢谢
main = do
rssFeeds <- runX (parseRSS "rss.xml" >>> getRSSDetails)
print rssFeeds
main=do
rssFeeds>>获取RSSDetails)
打印rssFeeds
EDIT1:通过添加
orElse
(constA“”)在where goto的结尾处取一个…通过添加
orElse (constA "")
年底
where gotoAndTake a = (getChildren >>>
isElem >>>
hasName a >>>
getChildren >>>
getText)
如果你已经找到了一个解决方案,可以把它作为答案写下来,然后接受这个答案。