Как извлечь внутренний текст из разметки HTML?
У меня есть следующий код:
import Text.HTML.TagSoup
parseTags "<hello>my&</world>"
который дает вывод, как: [TagOpen "hello" [],TagText "my&",TagClose "world"]
, Но я хочу получить только [TagText "my&"]
, И я могу сделать это:
filter (~== "my&")$ parseTags "<hello>my&</world>"
который даст мне вывод как: [TagText "my&"]
, Но я не знаю, что внутри TagText
т.е. "my&"
, Моя конечная цель - получить "my&"
который я могу получить
map(fromTagText) $ filter (~== "my&")$ parseTags "<hello>my&</world>"
Может ли кто-нибудь, пожалуйста, помогите. Я пытался использовать TagText
, но не могу сделать это правильно. Благодарю.
2 ответа
Решение
> filter isTagText (parseTags "<hello>my&</world>")
[TagText "my&"]
Если вы действительно хотите только "my&"
ты можешь использовать innerText
от TagSoup:
innerText (parseTags "<hello>my&</world>")
Он только ищет текстовые теги и объединяет их. Так это
innerText (parseTags "<hello>my&</world><foo>bar</foo>")
получает вас "my&bar"
,