XSLT is a very handy tool for translating XML, which is implemented through xsltprocessor, with many useful functions built into the XSLT, and only the Registerphpfunctions method that calls the Xsltprocessor instance, I We can use PHP's functions directly in XSLT, which greatly enhances the processing power of XSLT.
However, when using PHP functions in XSLT, many people encounter the following two types of errors:
(1) warning:xsltprocessor::transformtoxml (): Xmlxpathcompiledeval:1 objects left O
n the stack.
(2) PHP warning:xsltprocessor::transformtoxml (): xmlxpathcompopeval:function func
tion bound to undefined prefix php in ....
The code is as follows |
Copy Code |
$xml = <<
Bob Joe
EOB; $xsl = << Xmlns:xsl= "Http://www.w3.org/1999/XSL/Transform" > Users
select= "php:function (' Ucfirst ', string (UID))"/>
|
EOB; $xmldoc = Domdocument::loadxml ($xml); $xsldoc = Domdocument::loadxml ($xsl); $proc = new Xsltprocessor (); $proc->registerphpfunctions (); $proc->importstylesheet ($xsldoc); echo $proc->transformtoxml ($xmldoc); ?> |
In fact, this error occurs because we don't have a PHP namespace defined, just
The code is as follows |
Copy Code |
Xmlns:xsl= "Http://www.w3.org/1999/XSL/Transform" >
|
Add xmlns:php= "http://php.net/xsl" to solve this problem, that is,
The code is as follows |
Copy Code |
Xmlns:xsl= "Http://www.w3.org/1999/XSL/Transform" xmlns:php= "Http://php.net/xsl" > |
http://www.bkjia.com/PHPjc/632243.html www.bkjia.com true http://www.bkjia.com/PHPjc/632243.html techarticle XSLT is a very handy tool for translating XML, which is implemented by Xsltprocessor, and there are many useful functions built into XSLT, and you only need to invoke Xsltprocessor instances ...