Php 使用msxsl=";进行XSLT转换;urn:schemas microsoft com:xslt“;
我有一个XSLT样式表,其标题如下Php 使用msxsl=";进行XSLT转换;urn:schemas microsoft com:xslt“;,php,xslt,transformation,msxsl,Php,Xslt,Transformation,Msxsl,我有一个XSLT样式表,其标题如下 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:lxslt="http://xml.apache.org/xslt" xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" extension-element-prefixes="redirect
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
extension-element-prefixes="redirect"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:my-ext="ext1">
我们可以看到函数没有被找到/理解,尽管这是我在命令行中使用msXSL.exe运行的代码。
因此,我最终要找出我的PHP.ini中是否有需要修复/添加的内容,以了解如何使用MS扩展,或者我是否需要更改XSL样式表
男人。。。我希望这个问题有意义!谢谢你的帮助。
谢谢
抢劫
我的phpInfo显示
**XSL**
XSL enabled
libxslt Version 1.1.23
libxslt compiled against libxml Version 2.6.32
EXSLT enabled
libexslt Version 0.8.13
msxsl:script
是一个专有扩展,允许您使用JScript或VBScript编写扩展函数,我认为libxslt不支持这一点。但是,使用PHP5和libxslt,您可以用PHP编写扩展函数,请参阅。因此,这似乎是一种方法,如果您不能使用纯XSLT来实现您的需求,那么您需要将用J(ava)脚本编写的函数移植到PHP,并利用它在XSLT中使用这些函数
另一种选择是,如果您在有MSXML可用的Windows上运行PHP,您可能希望尝试从PHP使用它,这应该可以借助于例如
new COM(“MSXML2.DomDocument.3.0”)的帮助
例如,应该为您提供一个带有transformNode
方法的MSXML DOM文档,以使用msxsl:script
运行样式表,Martin,谢谢您提供的信息。不幸的是,我的处境并不那么明确。我现有的XSL(12个样式表)(w/Javascript扩展)已经是一个生产就绪的批处理系统。我希望使用PHP/HTML以前端方式重用此代码。简言之,我需要从大量XML文件中提取节点,并根据用户的搜索条件生成“单个”HTML输出。用PHP重新实现对我来说是不可行的。再次感谢您的投入。抢劫+
Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: xmlXPathCompOpEval: **function resetAll not found** in D:\Development\AppServ\www\RJFWEB\jqueryFileTree\PHPMain.php on line 49
Warning: XSLTProcessor::transformToXml() [xsltprocessor.transformtoxml]: **Unregistered function** in D:\Development\AppServ\www\RJFWEB\jqueryFileTree\PHPMain.php on line 49
**XSL**
XSL enabled
libxslt Version 1.1.23
libxslt compiled against libxml Version 2.6.32
EXSLT enabled
libexslt Version 0.8.13