Subject:XSL error function call PHP Author:cristof thomas Date:11 Jul 2007 04:55 PM
Hello,
I am just testing the SS product with PHP XSLTProcessor and I have a problem to avoid errors with SS with external call of php functions:
i have the following code:
...
<xsl:variable name="url_image">
<xsl:value-of select="$base_site"/>
<xsl:value-of select="php:function('GetPath','IMG')"/>
</xsl:variable>
...
which is generating the error below in SS:
at: file:///c:/EVOBOX%7E1/modele/E_ENV_%7E1.XSL 12
java.lang.RuntimeException: Error: on line 12 of file:///c:/EVOBOX%7E1/modele/E_ENV_%7E1.XSL:
Cannot find a matching 2-argument function named {http://php.net/xsl}function()
at com.exln.stylus.CSaxon8Driver.doProcessing(CSaxon8Driver.java:270)
at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:111)
E_ENV_PART.xsl (12, 1)
Error: on line 12 of file:///c:/EVOBOX%7E1/modele/E_ENV_%7E1.XSL: Cannot find a matching 2-argument function named {http://php.net/xsl}function()
but is correctly runing in PHP.
Is there any solution to avoid those errors when calling external PHP functions?
Subject:XSL error function call PHP Author:cristof thomas Date:13 Jul 2007 06:33 AM
I am sorry but I have no idea how to setup the PHP XSLTProcessor to be used from SS.
I am also evaluating other tools and even if PHP is not the focus, I think there is interest for such a tool also to be able to handle XSLT/XML for PHP world.
Thanks in advance for your help in order to allow PHP function calls at execution without exiting from SS or generating errors into the tool.
Regards,
Subject:XSL error function call PHP Author:David Brown Date:13 Jul 2007 10:41 PM
Keep that custom XSL processor option in mind as you look for tools that support PHP directly. I have a feeling that you could do what you want by writing a trivial PHP CLI script that that can process the XML. Just need to read three arguments from the command line; one is the path to the source xml; another is the xsl stylesheet; the third is where you should output your transformed document. That's not so hard, is it?
Good luck with other tools. If you should happen to find a tool that supports PHP natively, wonderful, but I'd be surprised. PHP -- and its license agreement which would make it difficult to incorporate into another product -- is idiosyncratic; I'm one of the first thousand Zend Certified Engineers for what that's (not) worth, so I am not slamming it... I write PHP daily. But it does not have terribly widespread support and your post came across to me as a touch arrogant.
Subject:XSL error function call PHP Author:cristof thomas Date:15 Jul 2007 10:27 AM Originally Posted: 15 Jul 2007 10:26 AM
Litle bit confused with your answer, probably the language barreer to assimilate so much idiomatisms in such a few words.
Can you reword in a more simple way?
Subject:XSL error function call PHP Author:David Brown Date:15 Jul 2007 12:45 PM
I'll try to be more generic and explicit in my word choice:
You will need PHP CLI -- the version of PHP that runs on a command line -- available on your development system that is also running Stylus studio. Read http://www.php.net/manual/en/features.commandline.php to understand more about this php variant.
Write a very small script in PHP that takes values from $argv (documented in that web page) and does the XSL transform you want on the files it finds there.
Set up Stylus Studio to use a "custom" XSL engine that calls your PHP CLI script with the paths specified in whatever order your script expects (the xml path, the xsl path, and the output path).
Please post back here if you do write such a script to share it and the custom setup with other PHP developers.