php5中的XSL转换没有启用XSL扩展

时间:2011-02-24 13:04:10

标签: php xslt

我面临着一个愚蠢的局面......我必须让一个应用程序执行XSLT转换才能在机构服务器上运行,并且这个服务器配置了php5而没有启用XSL ...... 遗憾的是,更改托管解决方案不是一种选择,负责服务器的IT人员不愿意重新配置它并启用XSL。

所以这是我的虚拟问题:是否有可能在没有启用XSL的情况下执行XSL转换? (确切地说,我需要使用XSL文件转换XML字符串,如果重要的话) 我检查过DOM,但是这些示例使用的类在我的实际脚本(XSLTProcessor)中引发致命错误。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:2)

有一些PEAR包处理XML / XSLT。但是,我对他们中的任何人都没有任何亲身经历。

http://pear.php.net/packages.php?catpid=22&catname=XML

请注意,您无需安装pear来获取pear包,您可以手动下载。

答案 1 :(得分:1)

我从未听说过XSLT处理器的PHP实现。如果存在,它可能会很复杂,有问题并且很可能没有维护。

您应该研究其他解决方案,例如使用其工作是执行转换的远程服务器(如果适用于您的情况)或者使用exec()运行命令行处理器,如果这样的话是可能的。

根据转换的复杂程度,您可能最好使用SimpleXML在PHP中执行转换。我不是在谈论在这里制作一个XSLT处理器,这很疯狂,而不是使用像

这样的东西
<xsl:for-each select="/foo/bar">
    <xsl:value-of select="@baz" />
</xsl:for-each>

你可以使用

foreach ($foo->bar as $bar) {
    echo $bar['baz'];
}

当然,如果您的样式表非常基本/简单,这只是一个现实的解决方案。