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
Z jakiego systemu operacyjnego korzystasz? – Dave
@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. –
Uruchamianie apache2. –