如何在android上将xml转换为html?

我对java和android比较新,在我的android应用程序中我需要获取xml文件,将其转换并显示给用户。

我知道如何解析xml,但我不想解析它并生成视图。 我想将其转换为html并在WebView中显示。

我试图在互联网上找到一些东西,却找不到任何东西((

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

谢谢

用于将XML转换为HTML的常用工具是XSLT。 搜索SO以获取XSLT教程,您将获得一些好的结果。

这是另一个显示一位开发人员如何在Android上使用XSLT的问题。 您还可以在这篇有用的文章中搜索使用Transformer的示例:

// 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:
本文介绍如何使用SAX解析器解析输入XML,然后使用XmlSerializer输出XML。 后者可以轻松输出您想要的任何XHTML。 两者都可以从API级别1开始提供。

不幸的是,我没有看到在API级别3中执行XPath的方法,但如果您的输入XML不是太复杂,您应该能够编写自己的转换代码。 我知道你“不想解析它并在之后生成视图”,但如果你的意思是你不想使用Android提供的XML解析器,那么我不知道任何替代方案。

更新2:我刚刚了解了XOM,它支持XPath的一个子集 。 此问题显示有人在Android级别上使用XOM(用于编写XML),您可以利用XPathfunction以及序列化function。 它需要一个小的外部库,XOM的jar。 我不知道它是否与API级别3兼容。

请参阅作为“AndStatus”应用程序的一部分创建的完整工作示例。 它使用XSLT在HelpActivity的WebView中显示本地化(!)应用程序更改日志。

工作示例包含以下部分:

  1. 没有任何依赖关系的小实用程序类(即可以很容易地重用)具有此function:

    / **

    • 使用提供的XSL样式表转换XML输入文件并在WebView中显示它
    • @param activity托管WebView的活动
    • @param resView WebView,其中应显示输出
    • @param resXml要转换的XML文件。 这个文件是本地化的! 它应该放在“raw-”文件夹中
    • @param resXsl XSL样式表。 在“原始”文件夹中。 可能是所有语言的单个… * / public static void toWebView(Activity activity,int resView,int resXml,int resXsl){…}在这里查看完整的源代码: Xslt.java
  2. 其用法示例:请参阅HelpActivity.java

  3. 要转换的XML文件: changes.xml和相应的XSL样式表: changesxsl.xsl

使用XSLT,XSLT将您的XML转换为我们可以在Android Webview中显示的HTML。 这个问题会有所帮助。