Как я могу преобразовать XML в HTML на Android? - PullRequest
0 голосов
/ 15 сентября 2010

Я относительно новичок в Java и Android, в моем приложении для Android мне нужно получить XML-файл, преобразовать его и показать пользователю.

Я знаю, как анализировать XML, но я не хочу анализировать его и генерировать представление после.Я хотел бы преобразовать его в HTML и отобразить в WebView.

Я пытаюсь найти что-то в Интернете, но ничего не могу найти ((

Как я могу это сделать?Любые идеи или ссылки будут оценены,

спасибо

Ответы [ 3 ]

3 голосов
/ 15 сентября 2010

Обычным инструментом для преобразования XML в HTML является XSLT.Ищите SO по руководству по XSLT, и вы получите хорошие результаты.

Вот еще один вопрос , показывающий, как один разработчик использовал XSLT на Android.Вы также можете найти примеры использования Transformer в Java, как в этой полезной статье :

// JAXP reads data using the Source interface
Source xmlSource = new StreamSource(xmlFile);
Source xsltSource = new StreamSource(xsltFile);

// the factory pattern supports different XSLT processors
TransformerFactory transFact =
        TransformerFactory.newInstance();
Transformer trans = transFact.newTransformer(xsltSource);

trans.transform(xmlSource, new StreamResult(System.out));

Обновление: Дляболее ранние версии Java API для Android:
В этой статье показано, как использовать SAX-анализатор для анализа входного XML, а затем использовать XmlSerializer для вывода XML,Последний может легко вывести любой XHTML, который вы хотите.Оба доступны начиная с уровня API 1.

К сожалению, я не вижу способа сделать XPath на уровне API 3, но если ваш входной XML не слишком сложен, вы сможете написать свои собственные преобразования.Я знаю, что вы «не хотите анализировать его и генерировать представление после», но если вы имеете в виду, что не хотите даже использовать анализатор XML, предоставляемый Android, то я не знаю никакой альтернативы.

Обновление 2: Я только что узнал о XOM, который поддерживает подмножество XPath . В этом вопросе показано, как кто-то использует XOM на Android (для написания XML) с уровнем API 4. Вы можете воспользоваться функциями XPath, а также функциями сериализации.Требуется небольшая внешняя библиотека, баночка XOM.Я не знаю, совместимо ли это с API уровня 3.

0 голосов
/ 16 октября 2013

Используйте XSLT, XSLT преобразует ваш XML в HTML, который мы можем отобразить в Android Webview. Этот вопрос поможет.

0 голосов
/ 23 декабря 2012

Смотрите полный рабочий пример, созданный как часть приложения "AndStatus". Он использует XSLT для отображения локализованного (!) Журнала изменений приложения в веб-представлении HelpActivity.

Рабочий пример состоит из следующих частей:

  1. Небольшой служебный класс без каких-либо зависимостей (то есть он может быть легко использован повторно), который имеет эту функцию:

    / **

    • Преобразование входных файлов XML с использованием прилагаемой таблицы стилей XSL и отображение ее в WebView
    • @ param activity Активный хостинг WebView
    • @ param resView WebView, в котором должен отображаться вывод
    • @ param resXml XML-файл для преобразования. Этот файл локализован! Должен быть помещен в «raw-» папку
    • @ param resXsl Таблица стилей XSL. В «сырой» папке. Может быть один для всех языков ... * / public static void toWebView (активность Activity, int resView, int resXml, int resXsl) { ... } Смотрите полный исходный код здесь: Xslt.java
  2. Пример его использования: см. HelpActivity.java

  3. XML-файл для преобразования: changes.xml и соответствующая таблица стилей XSL: changesxsl.xsl

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