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

时间:2010-09-15 13:07:37

标签: java html android xml transform

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

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

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

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

感谢

3 个答案:

答案 0 :(得分:3)

用于将XML转换为HTML的常用工具是XSLT。搜索SO以获取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不是太复杂,您应该能够编写自己的转换代码。我知道你“不想解析它并在之后生成视图”,但是如果你的意思是你甚至不想使用Android提供的XML解析器,那么我不知道有任何替代方法。

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

答案 1 :(得分:0)

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

工作示例包含以下部分:

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

    / **

    • 使用提供的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

答案 2 :(得分:0)

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

相关问题