java - 如何在 Android 上将 xml 转换为 html?

标签 java html android xml transform

我对 java 和 android 比较陌生,在我的 android 应用程序中,我需要获取一个 XML 文件,对其进行转换并将其显示给用户。

我知道如何解析 XML,但我不想解析它并在之后生成 View 。我想将其转换为 HTML 并在 WebView 中显示。

我试图在 Internet 上查找某些内容,但一无所获。

我该怎么做?任何想法或链接将不胜感激,

谢谢

最佳答案

将 XML 转换为 HTML 的常用工具是 XSLT。搜索 XSLT 教程,您将获得一些不错的结果。

Here is another question展示一位开发人员如何在 Android 上使用 XSLT。 您还可以搜索Transformer的使用示例在 Java 中,如 this helpful article :

// 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));

更新: 对于旧版本的 Android java API:
This article展示如何使用 SAX parser解析输入 XML,然后使用 XmlSerializer输出 XML。后者可以轻松输出您想要的任何 XHTML。两者从 API 级别 1 起就可用。

不幸的是,我没有找到在 API 级别 3 中执行 XPath 的方法,但如果您的输入 XML 不太复杂,您应该能够编写自己的转换代码。我知道您“不想解析它并在之后生成 View ”,但如果您的意思是您甚至不想使用 Android 提供的 XML 解析器,那么我不知道还有什么其他选择。

更新 2: 我刚刚了解到XOM, which supports a subset of XPathThis question显示某人在 Android 上使用 API 级别 4 的 XOM(编写 XML)。您可以利用 XPath 功能以及序列化功能。它需要一个小的外部库,XOM 的 jar。我不知道它是否与 API 级别 3 兼容。

关于java - 如何在 Android 上将 xml 转换为 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717866/

相关文章:

java - 当我在微服务后端之间发出请求时 SessionId 丢失

java - AndroidLauncher 找不到 Assets ,但 DesktopLauncher 可以

javascript - 如何更改表中多个 anchor 的 Href?

html - 将 inline-svg 设置为 div 的背景

javascript - 动画冒泡排序算法

android - 同一应用程序任务管理器中的两个 Activity

android - GLES10.glGetIntegerv 在三星设备上返回 0

java - 如何使用Java Stream轻松实现groupby中的条件计数

java - Android WebView - shouldOverrideUrlLoading 没有调用 url 请求

java - 简单的基于 Java 名称的锁?