如何从HTML标记中提取内部文本?

时间:2013-12-06 01:05:03

标签: haskell tag-soup

我有以下代码:

import Text.HTML.TagSoup

parseTags "<hello>my&amp;</world>" 

提供如下输出:[TagOpen "hello" [],TagText "my&",TagClose "world"]。但我只想获得[TagText "my&"]。我可以这样做:

filter (~== "my&")$ parseTags "<hello>my&amp;</world>"

这会给我输出像:[TagText "my&"]。但我不知道TagText内部是什么,即"my&"。我的最终目标是获得"my&"我可以获得

map(fromTagText) $ filter (~== "my&")$ parseTags "<hello>my&amp;</world>"

请任何帮助。我尝试使用TagText,但无法正确使用。谢谢。

2 个答案:

答案 0 :(得分:3)

> filter isTagText (parseTags "<hello>my&amp;</world>")
[TagText "my&"]

答案 1 :(得分:1)

如果您真的只想要"my&",可以使用TagSoup中的innerText

innerText (parseTags "<hello>my&amp;</world>")

它只查找文本标签并将它们连接起来。所以这个

innerText (parseTags "<hello>my&amp;</world><foo>bar</foo>")

获取"my&bar"