Java 如何在android上将xml转换为html?
我对java和android比较陌生,在我的android应用程序中,我需要获取一个XML文件,转换它并将其显示给用户 我知道如何解析XML,但我不想解析它并在之后生成视图。我想将其转换为HTML并显示在WebView中 我想在网上找些东西,但什么也找不到 我怎么做?任何想法或链接将不胜感激Java 如何在android上将xml转换为html?,java,html,android,xml,transform,Java,Html,Android,Xml,Transform,我对java和android比较陌生,在我的android应用程序中,我需要获取一个XML文件,转换它并将其显示给用户 我知道如何解析XML,但我不想解析它并在之后生成视图。我想将其转换为HTML并显示在WebView中 我想在网上找些东西,但什么也找不到 我怎么做?任何想法或链接将不胜感激 谢谢将XML转换为HTML的常用工具是XSLT。搜索XSLT教程,您会得到一些好结果 展示一位开发人员如何在Android上使用XSLT。 您还可以搜索在Java中使用的示例,如: 更新: 对于旧版本的An
谢谢将XML转换为HTML的常用工具是XSLT。搜索XSLT教程,您会得到一些好结果 展示一位开发人员如何在Android上使用XSLT。 您还可以搜索在Java中使用的示例,如: 更新: 对于旧版本的Android java API:
演示如何使用解析输入XML,然后使用输出XML。后者可以轻松输出您想要的任何XHTML。这两个都是从API级别1开始提供的 不幸的是,我没有看到在API级别3中使用XPath的方法,但是如果您的输入XML不太复杂,您应该能够编写自己的转换代码。我知道您“不想解析它并在之后生成视图”,但如果您的意思是您甚至不想使用Android提供的XML解析器,那么我不知道还有其他选择 更新2:
我刚刚了解到。显示某人在Android上使用XOM(编写XML),API级别为4。您可以利用XPath特性以及序列化特性。它需要一个小的外部库,XOM的jar。我不知道它是否与API级别3兼容。将XML转换为HTML的常用工具是XSLT。搜索XSLT教程,您会得到一些好结果 展示一位开发人员如何在Android上使用XSLT。 您还可以搜索在Java中使用的示例,如: 更新: 对于旧版本的Android java API:
演示如何使用解析输入XML,然后使用输出XML。后者可以轻松输出您想要的任何XHTML。这两个都是从API级别1开始提供的 不幸的是,我没有看到在API级别3中使用XPath的方法,但是如果您的输入XML不太复杂,您应该能够编写自己的转换代码。我知道您“不想解析它并在之后生成视图”,但如果您的意思是您甚至不想使用Android提供的XML解析器,那么我不知道还有其他选择 更新2:
我刚刚了解到。显示某人在Android上使用XOM(编写XML),API级别为4。您可以利用XPath特性以及序列化特性。它需要一个小的外部库,XOM的jar。我不知道它是否与API级别3兼容。请参阅完整的工作示例,它是作为“AndStatus”应用程序的一部分创建的。 它使用XSLT在HelpActivity的WebView中显示本地化的(!)应用程序更改日志 工作示例由以下部分组成:
- 使用提供的XSL样式表转换XML输入文件并在WebView中显示
- @承载WebView的参数活动活动
- @应在其中显示输出的参数resView WebView
- @要转换的参数resXml XML文件。此文件已本地化!它应该放在“原始-”文件夹中
- @param resXsl XSL样式表。在“原始”文件夹中。可能是单一的所有语言。。。 */ 公共静态void toubview(Activity-Activity、int-resView、int-resXml、int-resXsl){ ... } 请参阅此处的完整源代码:
请参阅作为“AndStatus”应用程序一部分创建的完整工作示例。 它使用XSLT在HelpActivity的WebView中显示本地化的(!)应用程序更改日志 工作示例由以下部分组成:
- 使用提供的XSL样式表转换XML输入文件并在WebView中显示
- @承载WebView的参数活动活动
- @应在其中显示输出的参数resView WebView
- @要转换的参数resXml XML文件。此文件已本地化!它应该放在“原始-”文件夹中
- @param resXsl XSL样式表。在“原始”文件夹中。可能是单一的所有语言。。。 */ 公共静态void toubview(Activity-Activity、int-resView、int-resXml、int-resXsl){ ... } 请参阅此处的完整源代码:
使用XSLT,XSLT将您的XML转换为我们可以在Android Webview中显示的HTML。
会有帮助的 使用XSLT,XSLT将您的XML转换为我们可以在Android Webview中显示的HTML。
会有帮助的 非常感谢您的回答,我知道XSLT,但据我所知,它在android中不受支持(我在SO和Google中都找不到任何关于它的信息)。关于您提供的代码,android不提供javax.xml.transform包,所以我不能使用所有这些类。我已经读到,不建议向android添加外部类。这是真的吗?好的,尽管有建议,我还是导入了这个包,现在我得到了转换为Dalvik格式的
失败,错误为1
@Burjua:“android不提供javax.xml.transform包”您使用的是什么版本的API?我链接到的安卓文档上写着“从API级别8开始”。实际上,我使用的是API级别3,因为我希望安卓1.5开始能够运行我的应用程序。事实上,在我改变了项目构建目标之后,它就可以工作了,但是android的旧版本呢?@Burjua展示了如何使用SAX解析器来解析
// 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));