2010-12-22 102 views
0

我目前正在尋找第三方庫來處理Android中的XSL樣式表。我知道Android 2.2已經添加了javax.xml.transform.TransformerFactory,但不幸的是,我們需要能夠支持舊版本的Android。Android 2.1(及更早版本)支持XSLT?

是否有任何第三方庫可用於使用XSL轉換XML?

我已經看了Xalan,Saxon和XT,但從我的理解中,這些只是提供了javax.xml.transform.TransformerFactory的實現,仍然需要核心抽象類。

回答

0

JAXB內置支持xslt轉換和特殊的Transformer接口。請參閱TransformerFactory及相關類。

+0

謝謝,但我正在尋找一個不使用TransformerFactory的庫,因爲在Android 2.2(API級別8)之前這個庫不可用。 – migueljuan 2010-12-22 12:13:14

0

我有同樣的問題。到目前爲止,我已經能夠使用舊版本的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。

我沒有任何東西來承載撒克遜罐子,但可能稍後可以這樣做。

0

Opera Mobile對我的舊Htc願望可以正常使用XSLT。

0

您可以直接從Java中複製這些類(在Grepcode.com上找到它們),將它們放到您自己的名稱空間中並使用它們。

你需要:

DOMSource.java FactoryFinder.java Result.java SecuritySupport.java Source.java StreamResult.java Transformer.java TransformerFactory.java

..你需要更新這些引用來引用它們自己,而不是javax包中的引用。我認爲這是大約20分鐘的工作。

相關問題