將PHP的庫升級到使用XSLT 2.0可能嗎?將PHP XSLT處理器升級到XSLT 2.0
當前設置:
xsl
XSL enabled
libxslt Version 1.1.24
libxslt compiled against libxml Version 2.6.32
EXSLT enabled
libexslt Version 1.1.24
將PHP的庫升級到使用XSLT 2.0可能嗎?將PHP XSLT處理器升級到XSLT 2.0
當前設置:
xsl
XSL enabled
libxslt Version 1.1.24
libxslt compiled against libxml Version 2.6.32
EXSLT enabled
libexslt Version 1.1.24
的Saxon-C項目提供了XSLT 2.0實現一個PHP API。
以下是基本安裝過程:
請有你的機器建立薩克森/ C PHP擴展以下包:製作,PHP-devel的,(PHP5-dev /目錄php55-dev /目錄php55w -devel),apache2的或的httpd,GCC-C++或g ++,GCJ(或只是鏈接的jni.h文件)
執行命令的命令:
phpize
./configure --enable-saxon
make
sudo make install
更新php.ini文件(如果使用Ubuntu,它通常位於'/ etc/php5/apache2 /'位置)以包含php擴展。插入在動態擴展部分執行以下操作:延長= saxon.so
執行命令:
sudo service apache2 restart
示例代碼:
<?php
/* simple example to show transforming to string */
function exampleSimple1($proc, $xmlfile, $xslFile){
$proc->setSourceFile($xmlfile);
$proc->setStylesheetFile($xslFile);
$result = $proc->transformToString();
if($result != null) {
echo '<b/>exampleSimple1:</b/><br/>';
echo 'Output:'.$result;
} else {
echo "Result is null";
}
$proc->clearParameters();
$proc->clearProperties();
}
$foo_xml = "xml/foo.xml";
$foo_xsl = "xsl/foo.xsl";
$proc = new SaxonProcessor();
//On Windows we recommend setting the cwd using the overloaded constructor
//because there remains an issue with building Saxon/C with PHP when using the function VCWD_GETCWD. i.e. $proc = new SaxonProcessor('C://www/html//trax//');
$version = $proc->version();
echo 'Saxon Processor version: '.$version;
echo '<br/>';
exampleSimple1($proc, $foo_xml, $foo_xsl);
?>
的libxslt2和libexslt庫,其被限定到XSLT 1.0,XPath 1.0和EXSLT支持,用於爲PHP提供默認的XSLT處理器。 XML_XSLT2Processor項目旨在提供升級途徑。
以下是基本安裝過程:
按照提供您要使用上如何安裝XSLT處理器指令處理器的網站上的說明。基本上,您需要在某個目錄中提取處理器二進制文件。
處理器設置完成後,您可以下載XML_XSLT2Processor。 使用PEAR安裝程序
如果您還沒有PEAR安裝程序,請檢查PEAR站點上的安裝說明(基本上,在Windows上,您啓動PHP文件夾中的go-pear.bat文件,以及典型情況下,一路點擊「Enter」),然後安裝PEAR安裝程序(也稱爲「PEAR軟件包管理器」)。
一旦你的PEAR安裝程序,你可以從它安裝XML_XSLT2Processor,只需輸入 梨安裝路徑/到/的/ TGZ/arhive 但更換過程的路徑。例如,如果版本0.5.3是在同一個文件夾作爲PHP文件夾,您可以用命令 梨安裝它。如果你沒有安裝XML_XSLT2Processor_v0_5_3.tgz
手動安裝
有(訪問)PEAR安裝程序,您仍然可以通過在任何目錄中提取存檔的內容來安裝XML_XSLT2Processor。但是,建議您將此目錄包含在include_path中的路徑中,您可以在php.ini中指定該路徑。爲了更貼近地模擬PEAR安裝程序,您還可以將「XSLT2Processor-verion」目錄重命名爲「XML」。
使用
一旦上述所有完成後,你可以創建一個新的PHP文件,包括XML_XSLT2Processor在裏面。如果你使用PEAR安裝,「XSLT2Processor.php」應該是可以從「XML」文件夾中,這樣的:
<?php
include "XML/XSLT2Processor.php";
//The rest of the code
?>
你需要的PHP文件中包含行會使用該類,它應該在使用該類中的任何函數之前發生。其餘的文檔將向您展示如何構建XML_XSLT2Processor類,並解釋每個函數的原型並給出一些示例。
請注意,如果你在使用這個PHP擴展之前已經使用過PHP XSL擴展,那麼你唯一需要知道的就是XML_XSLT2Processor :: __ construct()函數。其餘的與它兼容,儘管這裏只有一些新功能可用。請注意,由於類的體系結構(不是PECL擴展和所有...),registerPHPFunctions()和setProfiling()函數不可用。
參考
感謝您的鏈接。 – DanMan 2013-06-10 17:42:30
你在運行什麼操作系統? – Dave 2010-10-06 15:19:13
@Louis W:我認爲沒有「本機」PHP XSLT 2.0處理器。但是在很多平臺上都有XSLT 2.0處理器,我認爲PHP腳本有一種方法可以與其他服務器進程連接。 – 2010-10-06 15:21:52
運行apache2。 – 2010-10-06 15:38:02