我对 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 XPath 。 This question显示某人在 Android 上使用 API 级别 4 的 XOM(编写 XML)。您可以利用 XPath 功能以及序列化功能。它需要一个小的外部库,XOM 的 jar。我不知道它是否与 API 级别 3 兼容。
关于java - 如何在 Android 上将 xml 转换为 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717866/