【问题标题】:XSLT support in Android 2.1 (and older)?Android 2.1(及更早版本)中的 XSLT 支持?
【发布时间】:2010-12-22 11:41:40
【问题描述】:

我目前正在寻找第三方库来处理 Android 中的 XSL 样式表。我知道 Android 2.2 已经添加了javax.xml.transform.TransformerFactory,但不幸的是我们需要能够支持旧版本的 Android。

是否有可用的第三方库可用于通过 XSL 转换 XML?

我看过 Xalan、Saxon 和 XT,但据我了解,这些只是提供了 javax.xml.transform.TransformerFactory 的实现,并且仍然需要核心抽象类。

【问题讨论】:

    标签: java android xslt


    【解决方案1】:

    JAXB 内置支持 xslt 转换和特殊的 Transformer 接口。参见TransformerFactory 和相关类。

    【讨论】:

    • 谢谢,但我正在寻找一个不使用 TransformerFactory 的库,因为它在 Android 2.2(API 级别 8)之前不可用。
    【解决方案2】:

    我遇到了同样的问题。到目前为止,我已经能够使用旧版本的 Saxon 在 Android 2.1 上测试基本的 XSLT 转换。 Saxon 5.5.1 似乎是 Saxon 在支持 JAXP 之前的最后一个版本(Android 2.1 中缺少的东西)。它只是 XSLT 1.0,但似乎基本上可以工作。您可能需要调整源以使其正常运行。在我试图让 Xalan 工作的问题之后,我重建了 Jar(提示:Xalan 在 Android 2.1 上不起作用)。主要只是将变量更改为不命名为枚举,并让 eclipse 为从那时起添加到 DOM 的内容生成一些存根方法。

    我从OnJava.com 中找到了一些说明如何使用 Saxon XSLT 的文档,并使用它创建了一个测试应用程序,该应用程序执行 XSLT 转换,生成显示在 WebView 中的 HTML。

    我没有地方可以托管 Saxon Jar,但以后也许可以。

    【讨论】:

      【解决方案3】:

      Opera Mobile 与 XSLT 配合得很好,满足了我对 Htc 的旧愿望。

      【讨论】:

        【解决方案4】:

        您可以直接从 Java 中复制这些类(在 Grepcode.com 上找到它们),将它们放入您自己的命名空间并使用它们。

        你需要:

        DOMSource.java FactoryFinder.java 结果.java 安全支持.java 源码.java StreamResult.java 变压器.java TransformerFactory.java

        .. 并且您需要更新这些引用以引用它们自己而不是 javax 包中的引用。我认为这大约需要 20 分钟的工作时间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-08-25
          • 1970-01-01
          • 1970-01-01
          • 2013-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-10
          相关资源
          最近更新 更多