2010-10-01 19 views
11

我有一個xml文件,我希望使用xsl文檔進行轉換,但是我似乎無法使它適用於最新的可用Android版本。Android瀏覽器是否能夠執行xsl轉換?

我試着給xml添加一個<?xml-stylesheet/>標籤,但是在原生瀏覽器或海豚瀏覽器中都不起作用。

如:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="style.xsl"?> 
<xmldata>Hello world</xmldata> 

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/xmldata"> 
     <em><xsl:value-of select="/xmldata"/></em> 
    </xsl:template> 
</xsl:stylesheet> 

應該產生斜體,它確實在大多數桌面瀏覽器(Chrome瀏覽器已是確保惱人的共享腳本根策略它只能當這些文件不在本地光盤上。) 但它在移動瀏覽器中不起作用。

有沒有一種方法可以將變換腳本編寫爲客戶端,或者是唯一的選項來執行服務器端?

回答

1

默認的Android瀏覽器開始支持在Android 4.0 Ice Cream Sandwich中顯示的版本中的xsl轉換。

終於開始支持xsl的其他移動瀏覽器是Opera MobileChrome Android Browser,目前處於測試階段。

0

是的,它非常適合自Android平臺合併Webkit佈局引擎。

據我所知,它支持XSLT。 我確信桌面版的webkit,但你也可以看看WebKit's XSLT implementation的深入信息。

+0

當我訪問從友情鏈接在我的手機瀏覽器的演示頁http://www.mozilla.org/projects/xslt/test.xml,它不會呈現轉換的XML頁面,所以我想答案是否定的? – Zaz 2010-11-25 09:43:07

+0

@Zaz:您是否嘗試過使用xmlns:xsl =「http://www.w3.org/1999/XSL/Transform」。 XSLT處理器(瀏覽器)對名稱空間聲明非常敏感。 – 2010-11-25 10:29:31

+1

假設在命名空間中的左側協議是一個錯字^^,沒有,webkit mobile和webkit不完全相同的引擎 – rds 2010-11-29 10:52:51

1

我有一個完全用XML,XSLT和XHTML開發的網站。它不在我的Android DroidX手機中呈現,但在其他地方的所有瀏覽器中呈現。對於這是否意味着Android不支持XSLT,我沒有明確的答案。

+0

節省CPU週期可能保護電池?!我只是在Android的服務器上渲染。我使用WURLF在Java中進行檢測,然後僅將此轉換應用於此案例以將服務器處理降至最低。 – Stef 2012-03-05 02:14:02

2

查看Android issue 9312 總結:Android瀏覽器直到2.1版才支持XSLT客戶端。

+0

我有版本2.2.1,所以問題似乎流連忘返。另外還有一種方法可以使用JavaScript來執行轉換瀏覽器端,而這只是與標記鏈接的轉換髮生故障。 – Zaz 2010-11-29 12:40:16

+1

在這個問題中,他們提到他們即使在最新的Honeycomb SDK中也進行了測試,但仍然無法正常工作。 – 2011-02-24 14:31:19

+0

我有Android 2.3,它仍然無法正常工作。顯然它現在在Firefox上工作,而幾個月前它沒有。希望谷歌也會盡快爲它添加支持。 – Stef 2012-03-05 02:12:32

0

通過使用包含的libxslt庫,Webkit確實具有XSLT功能。我已經成功完成了使用樣式表聲明以及使用Javascript XSLTProcessor類的轉換。這適用於除Android和iPhone之外的大多數Webkit瀏覽器。

看來,爲了節省空間,他們故意禁用了xslt的功能,我的猜測是它是針對移動瀏覽器所做的優化。

在Galaxy Tablet和XSLTProcessor類中使用Android 2.2進行測試不存在。

0

我剛剛用Froyo瀏覽器測試了一個XSLT示例,結果是一個完全白頁。不過,我爲Android安裝了Opera移動瀏覽器,它完美呈現了我的例子。

我無法在Opera mini中測試,因爲我的測試是在沒有Internet連接的局域網中進行的。

1

在Opera mini中運行良好。我正在使用Android 1.5平板電腦。

0

我下載Opera手機版本:12.00爲我的慾望和XSLT終於在我的手機上工作。所以一個很好的提示是在Market下載Opera Mobile。

相關問題