XSLT::registerPHPFunctions und "NICHT-PHP" XSLT-Prozessoren
PHP5 ermöglicht es mittels XSLTProcessor::registerPHPFunctions innerhalb von XSL-Stylesheets PHP Funktionen zu verwenden. Soweit, so gut...
Mit einem kleinen Trick ist es aber möglich XSL-Stylesheets zu schreiben, die auch mit "Nicht-PHP-XSLT-Prozessoren" wie z.B. xsltproc verarbeitet werden können, aber beim Einsatz von PHP:XSL dennoch die Möglichkeiten der PHP-Funktionen zu nutzen. "XSLT::registerPHPFunctions und "NICHT-PHP" XSLT-Prozessoren" vollständig lesen
Autor: Jens Giessmann
in PHP, XML
am
Mittwoch, 11. April 2007
um
18:24
Kommentare (0) | Trackbacks (0) there is no attribute "xmlns:php"
Ja, mir ist klar, daß es grenzwertig ist, mittels XSLTProcessor::registerPHPFunctions innerhalb von XSL-Stylesheets PHP Funktionen zu verwenden.
Aber ab und an (z.B. für Syntax-highlighting von PHP-Code) ist es einfach zu praktisch um es nicht zu verwenden. Was mich aber wirklich gestört hat, ist der nicht valide XHTML-Code der dadurch erzeugt wurde. Im Output wurde teilweise die xmlns:php Definition als Attribut in Tags mit aufgenommen und das ist dann eben kein valider XHTML-Code mehr. Line 14 column 23: there is no attribute "xmlns:php". <div xmlns:php="http://php.net/xsl" id="headermeta"> Wie so oft, nicht lange ärgern, lieber die Zeit mit Lesen verbringen, das bildet ;-) Irgendeinen Parameter in der Stylesheet, Template oder xsl:output Definition sollte es doch geben mit dem man das abstellen kann.... Gibt es auch, und zwar als Parameter von <xsl:stylesheet>: exclude-result-prefixes="php" Eine komplette Stylesheet Definition mit PHP-Funktionen, EXSLT-Erweiterung für XHTML-Output sieht dann z.B. so aus: CODE: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl" xmlns:php="http://php.net/xsl" exclude-result-prefixes="php" > <xsl:output method="xml" version="1.0" indent="yes" encoding="ISO-8859-1" omit-xml-declaration="no" media-type="text/xml" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <!-- ..... --> </xsl:stylesheet> Variable Navigations-Listen mit PHP, XML und XSLT
... oder, taugt XSLT als Templatesprache für die Ausgabelogik?
Hier eine kleines Beispiel, wie man sehr einfach mit XSLT anhand eines gegebenen Wertes eine variable Ausgabe von (XML) Daten erzeugen kann. Als Beispielaufgabe soll hier mal eine Navigationsliste eines Intranets herhalten. - Jeder User bekommt beim Login ein Berechtigungslevel - Je nach Berechtigung des Users sollen nur die Teile der Navigation angezeigt werden für die der User auch eine Berechtigung hat. - Die gesamte Navigation, mit allen insgesamt möglichen Items, soll aber nur einmal als XML/XHTML gepflegt werden müssen. Vorraussetzung ist PHP 5 ;-) "Variable Navigations-Listen mit PHP, XML und XSLT" vollständig lesen
Autor: Jens Giessmann
in PHP, XML
am
Dienstag, 9. Januar 2007
um
17:32
Kommentare (0) | Trackbacks (0)
(Seite 1 von 1, insgesamt 3 Einträge)
|
blog powered by Serendipity

