Android получить текст из HTML - PullRequest
6 голосов
/ 03 апреля 2011

Я получаю специальный HTML-код:

<; p>; Это <; a href = "; http://www.test.hu">; тестовая ссылка <; / a>; и этоэто & ​​nbsp; образец текста со специальным символом: &; # 233; va <; / p>;

(До этого нет пробела; char, но если я не вставлюпробел отформатировать в стеке)

Обычно это не HTML-код, но если я вставлю пустую HTML-страницу, браузер покажет его с обычными тегами:

<<em> p > Это <<em> a href = "http://www.test.hu">a тестовая ссылка <<em> / a >, и это пример текста со специальным символом: éva <<em> / p >

Этот код будет отображаться в браузере:

Это тестовая ссылка. Это образец текста со специальнымchar: éva

Итак, я хочу получить этот текст, но не могу использовать Html.fromHtml, потому что используемый мной компонент не поддерживает Spanned.Я хотел попробовать StringEscapeUtils, но не смог импортировать его.

Как заменить специальные символы и удалить теги?

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Полагаю, я опоздал, чтобы ответить на вопрос Робертока, но я уверен, что многие другие ребята все еще борются с этой проблемой, я был одним из них.

В любом случае, самый простой способ, который я нашел, это: В strings.xml добавьте html-код внутри CDATA , а затем в упражнении получите строку и загрузите ее в WebView , вот пример:

в strings.xml:

<string name="st1"><![CDATA[<p>This is <a href="http://www.test.hu">a test link</a> and this is  a sample text with special char: éva </p>]]>
</string>

Вы можете заменить é на & eacute; (примечание: между & eacute и ; )

нет пробела

Теперь в своей деятельности создайте WebView и загрузите в него строку st1:

WebView mWebview = (WebView)findViewById(R.id.*WebViewControlID*);
mWebview.loadDataWithBaseURL(null, getString(R.string.st1), "text/html", "utf-8", null);

И хоррааа, он должен работать правильно. Если вы сочтете этот пост полезным, я буду признателен, если вы отметите его как ответивший, поэтому мы помогаем другим, которые борются с этой проблемой

1 голос
/ 03 апреля 2011

Напишите синтаксический анализатор, ничем не отличающийся от того, который вы бы сделали в любой другой ситуации, когда вам нужно проанализировать данные.

Теперь, если вы можете получить его как обычный неэкранированный HTML, существует множество открытых HTML-кодов Java.парсеры, которые вы можете использовать.Если вы собираетесь работать с экранированным HTML, как в первом примере, вам придется написать синтаксический анализатор самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...