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>