1--TEST-- 2Auto-registration of namespaces in XSL stylesheet with new DOM 3--EXTENSIONS-- 4dom 5xsl 6--FILE-- 7<?php 8 9$sheet = DOM\XMLDocument::createFromString(<<<XML 10<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 11 xmlns:php="http://php.net/xsl" 12 xmlns:str="http://exslt.org/strings" 13 xmlns:xsdl="http://www.w3.org/1999/XSL/Transform"> 14 <xsl:output method="text" omit-xml-declaration="yes" indent="no"/> 15 <xsl:template match="/root"> 16 <xsl:value-of select="php:function('strtoupper', string(./hello))"/> 17 <xsl:value-of select="test:reverse(string(./hello))"/> 18 </xsl:template> 19</xsl:stylesheet> 20XML); 21 22// Make sure it will auto-register urn:test 23$sheet->documentElement->append($sheet->createElementNS('urn:test', 'test:dummy')); 24 25$input = DOM\XMLDocument::createFromString(<<<XML 26<root> 27 <hello>World</hello> 28</root> 29XML); 30 31$processor = new XSLTProcessor(); 32$processor->importStylesheet($sheet); 33$processor->registerPHPFunctions(); 34$processor->registerPHPFunctionNS('urn:test', 'reverse', 'strrev'); 35echo $processor->transformToXML($input), "\n"; 36 37?> 38--EXPECT-- 39WORLDdlroW 40