2010-10-06 17 views
12

Czy jest możliwe/łatwe uaktualnienie biblioteki PHP do korzystania z XSLT 2.0?Uaktualnij procesor PHP XSLT do XSLT 2.0

Aktualny skonfigurować:

xsl 
XSL  enabled 
libxslt Version  1.1.24 
libxslt compiled against libxml Version  2.6.32 
EXSLT enabled 
libexslt Version 1.1.24 
+0

Z jakiego systemu operacyjnego korzystasz? – Dave

+1

@Louis W: Myślę, że nie ma "natywnego" procesora PHP XSLT 2.0. Ale na wielu platformach istnieje procesor XSLT 2.0 i myślę, że istnieje sposób na połączenie skryptów PHP z innymi procesami serwera. –

+0

Uruchamianie apache2. –

Odpowiedz

12

Projekt Saxon-C dostarcza API PHP dla jego realizacji XSLT 2.0.

Oto podstawowy proces instalacji:

Proszę mieć następujące pakiety na komputerze do budowania rozszerzenie Saxon/C PHP: make, php-devel, (php5-dev/php55-dev/php55w -devel), apache2 lub httpd, gcc-C++ lub g ++, gcj (lub po prostu połączyć plik jni.h)

uruchomić komendy:

phpize 
./configure --enable-saxon 
make 
sudo make install 

Zaktualizuj plik php.ini (jeśli używasz Ubuntu zazwyczaj znajduje się w lokalizacji "/ etc/php5/apache2 /"), aby zawierać rozszerzenie php. Wstaw następujący tekst w sekcji Dynamiczne rozszerzenia: extension = saxon.so

Uruchom komendę:

sudo service apache2 restart 

Przykładowy kod:

<?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); 
?> 

Biblioteki libxslt2 i libexslt, które są ograniczone do obsługi XSLT 1.0, XPath 1.0 i EXSLT, są używane do zapewnienia domyślnego procesora XSLT dla PHP. Projekt XML_XSLT2Processor ma na celu zapewnienie ścieżki aktualizacji.

Oto podstawowy proces instalacji:

Postępuj zgodnie z instrukcjami na stronie procesora, którego chcesz użyć, aby uzyskać instrukcje dotyczące instalowania tego procesora XSLT. Zasadniczo będziesz musiał wyodrębnić plik binarny procesora w jakimś katalogu.

Po skonfigurowaniu procesora można pobrać XML_XSLT2Processor. Używanie instalatora PEAR

Jeśli nie masz jeszcze instalatora PEAR, sprawdź instrukcje instalacji na stronie PEAR (w zasadzie w systemie Windows uruchamiasz plik go-pear.bat w folderze PHP, a także typowy przypadek kliknij "Enter" przez całą drogę) i zainstaluj instalator PEAR, zwany też "menedżerem pakietów PEAR".

Gdy masz instalatora PEAR, można zainstalować XML_XSLT2Processor od niego, po prostu wpisując gruszka zainstalować ścieżka/do/z/tgz/Udział: ale zastąpić ścieżkę kursu. Na przykład, jeżeli wersja 0.5.3 był w tym samym folderze co folderze PHP, można zainstalować go z polecenia gruszka zainstalować XML_XSLT2Processor_v0_5_3.tgz

Instalacja ręczna

Jeśli nie mieć (dostęp do) instalatora PEAR, nadal możesz zainstalować XML_XSLT2Processor, wyodrębniając zawartość archiwum w dowolnym katalogu.Zaleca się jednak, aby katalog ten znalazł się wśród ścieżek w ścieżce include_path, którą można określić w pliku php.ini. Aby dokładniej emulować instalator PEAR, możesz również zmienić nazwę katalogu "XSLT2Processor-verion" na "XML".

Wykorzystanie

Po wszystkich powyższych jest zrobione, można utworzyć nowy plik PHP i obejmują XML_XSLT2Processor w nim. Jeśli użyłeś instalatora PEAR „XSLT2Processor.php” powinny być dostępne z folderu „XML”, a więc:

<?php 
include "XML/XSLT2Processor.php"; 
//The rest of the code 
?> 

Musisz linię umieścić w pliku PHP, który będzie używaj klasy i powinno to nastąpić przed użyciem dowolnej z funkcji w tej klasie. Reszta dokumentacji pokaże ci jak zbudować klasę XML_XSLT2Processor, a także objaśnić prototyp każdej funkcji i podać kilka przykładów.

Pamiętaj, że jeśli pracujesz z rozszerzeniem PHP XSL przed użyciem tego, jedyną rzeczą, którą naprawdę musisz znać, jest funkcja XML_XSLT2Processor :: __ construct(). Reszta jest z nim zgodna, choć są tu tylko niektóre nowe funkcje. Należy pamiętać, że funkcje registerPHPFunctions() i setProfiling() nie są dostępne ze względu na architekturę klasy (nie będącą rozszerzeniem PECL i wszystkimi ...).

Odniesienia

+0

Dzięki za linki. – DanMan