我对java和android比较新,在我的android应用程序中我需要获取xml文件,将其转换并显示给用户。
我知道如何解析xml,但我不想解析它并生成视图。我想将其转换为html并在WebView中显示。
我正在尝试在互联网上找到一些东西,却找不到任何东西(
我该怎么办?任何想法或链接将不胜感激,
感谢
答案 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 XPath。 This question显示有人在Android级别上使用XOM(用于编写XML),您可以利用XPath功能以及序列化功能。它需要一个小的外部库,XOM的jar。我不知道它是否与API级别3兼容。
答案 1 :(得分:0)
请参阅完整的工作示例,该示例是作为“AndStatus”应用程序的一部分创建的。 它使用XSLT在HelpActivity的WebView中显示本地化(!)应用程序更改日志。
工作示例包含以下部分:
具有此功能的没有任何依赖关系的小实用程序类(即可以很容易地重用):
/ **
其用法示例:请参阅HelpActivity.java
要转换的XML文件:changes.xml 和相应的XSL样式表:changesxsl.xsl
答案 2 :(得分:0)
使用XSLT,XSLT将您的XML转换为我们可以在Android Webview中显示的HTML。 This question会有所帮助。