Преобразование 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());
Другие вопросы по тегам