Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android上将xml转换为html?_Java_Html_Android_Xml_Transform - Fatal编程技术网

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

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

我对java和android比较陌生,在我的android应用程序中,我需要获取一个XML文件,转换它并将其显示给用户

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

我想在网上找些东西,但什么也找不到

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


谢谢

将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){ ... } 请参阅此处的完整源代码:
  • 其用法示例:请参阅

  • 要转换的XML文件: 以及相应的XSL样式表:


  • 请参阅作为“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){ ... } 请参阅此处的完整源代码:
  • 其用法示例:请参阅

  • 要转换的XML文件: 以及相应的XSL样式表:


  • 使用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));