Преобразование HTML-текста в уценку
У меня есть HTML-текст, который мы получаем из редактора форматированного текста и где мне нужно конвертировать этот форматированный текст в текст уценки
Например:
возврат в форматированный текст
<b> strong </b>
to
**strong**
Может ли кто-нибудь помочь мне в Android
3 ответа
Вы можете использовать библиотеку примечаний (загрузка на странице не работает, но она также доступна в maven central), которая также поддерживает уценку с учетом GitHub и Multimarkdown. Код мог выглядеть так:
public static void main(String[] args) {
final String html = "<b>Foo</b>";
final Remark remark = new com.overzealous.remark.Remark(com.overzealous.remark.Options.github()); // or Options.markdown() or Options.multiMarkdown()
remark.setCleanedHtmlEchoed(false);
System.out.println(remark.convert(html));
}
Выход: **Foo**
Вы можете использовать XSLT для преобразования HTML в уценку в Java Java. Вот пример для использования в Android.
void test(String theHTML)
{
File xsltFile = new File("mardownXSLT.xslt");
Source xmlSource = new StreamSource(new StringReader(theHTML));
Source xsltSource = new StreamSource(xsltFile);
TransformerFactory transFact =
TransformerFactory.newInstance();
Transformer trans = transFact.newTransformer(xsltSource);
StringWriter result = new StringWriter();
trans.transform(xmlSource, new StreamResult(result));
}
Вы также можете загрузить из строки HTML:
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary, "text/html", null);
(или же)
Например (
myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>"));
Например (>= Android Nougat):
myTextView.setText(Html.fromHtml("<h2>Title</h2><br><p>Description here</p>", Html.FROM_HTML_MODE_COMPACT));
Мое предложение лучше использовать для веб-просмотра.because теги таблицы и некоторые другие теги не отображаются в Textview... Документ Webview
Попробуйте этот код
TextView textView = (TextView) findViewById(R.id.textView);
String htmlText = "<b> strong </b>";
textView.setText(Html.fromHtml(htmlText).toString());