Как извлечь внутренний текст из разметки HTML?

У меня есть следующий код:

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 ответа

Решение
> filter isTagText (parseTags "<hello>my&amp;</world>")
[TagText "my&"]

Если вы действительно хотите только "my&" ты можешь использовать innerText от TagSoup:

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

Он только ищет текстовые теги и объединяет их. Так это

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

получает вас "my&bar",

Другие вопросы по тегам