14 11月 2007

[Ubuntu] php5安裝extension xsl

原本在我的舊文章有提到Ubuntu 安裝php5+xslt,感謝L大大的寶貴意見,讓我又上到一課了。
原來在php4支援的extension xslt,在php5以後就不支援了,改成支援新的extension xsl,所以原本在php4中用到xslt的地方,要全部改寫成xsl,才能正確地跑在php5+xsl上。幸好我的project,只有一個地方用到xslt,因此只要改小部分就好了。

至於xslt與xsl差在哪邊呢,它們都是用來讀取xsl檔格式的library。但是xslt是function base,xsl是class base。而用了一下之後,果然是新版的比較好,在xsl檔有error時,會秀出error訊息,而原本的xslt要另外寫個function xslt_error_handler去取得error message。


在Ubuntu上安裝php+xsl很簡單:
% apt-get install php5
% apt-get install php5-xsl


以下寫個xsl與xslt寫法的簡單對應:
xslt (function base)
$xsltproc = xslt_create();
xslt_set_encoding( $xsltproc, "UTF-8" );
echo xslt_process( $xsltproc, "input.xml", "falldog.xsl" );

xsl (class base)
$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load("falldog.xsl");
$xsl->importStyleSheet($doc);

$doc->load("input.xml");
echo $xsl->transformToXML($doc);

關於其他xsl的訊息,請參考PHP官方網站說明
http://www.php.net/manual/en/ref.xsl.php

沒有留言: