إذا فاتت العلامة عند تحليل ملف RSS في Haskell باستخدام HXT
سؤال
لا بد لي من تحليل ملف 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)
مشكلتي هي أنه عندما تكون إحدى العلامات مفقودة، دعنا نقول "lastBuildDate" من ملف RSS، ثم أحصل على قائمة فارغة، لكنني أريد فقط استبدال هذا العنصر بـ "".
كيف أقوم بذلك ؟؟شكرًا،
main = do
rssFeeds <- runX (parseRSS "rss.xml" >>> getRSSDetails)
print rssFeeds
تحرير 1:تم الحل عن طريق الإضافة orElse
(constA "") في نهاية المكان gotoAndTake ...
المحلول
تم الحل عن طريق الإضافة
orElse (constA "")
في نهاية
where gotoAndTake a = (getChildren >>>
isElem >>>
hasName a >>>
getChildren >>>
getText)
لا تنتمي إلى StackOverflow