原來在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
沒有留言:
張貼留言