尽管XSL样式表近乎空,但XSLTProcessor :: importStylesheet()中的PHP警告

时间:2009-09-05 09:58:59

标签: php xml xslt

我正在尝试使用以下代码

# LOAD XML FILE
$XML = new DOMDocument();
$XML->loadXML( $exporteddatatransformed );

# START XSLT
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( 'xsl/'.$xsltemplatefileid.'.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet( $XSL );            <-- LINE 549
#PRINT
print $xslt->transformToXML( $XML );

但它会产生以下错误。

警告:XSLTProcessor :: importStylesheet()[xsltprocessor.importstylesheet]:编译错误:/home/...../myfile中的文件/home/..../xsl/1234567890.xsl第2行元素样式表。 php在549行

XSL表格如下所示:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet> 

我目前已将其修剪为“无”,以便诊断问题发生的位置,但它仍然保留在这个“基本”XSL版本中!

1 个答案:

答案 0 :(得分:0)

如果用这个替换xsl:stylesheet行似乎加载正常:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

这意味着拥有这个xsl文件:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
    </xsl:template>
</xsl:stylesheet>

而不是你的。

尝试转换文件时是否有效?


注意:我不经常使用XSL,所以不确定为什么你提出的不起作用;但“http://www.w3.org/1999/XSL/Transform”同时用于wikipedia's article about XSL Transformations和PHP手册中使用的example .xsl file ......

所以,我猜这应该有助于解决你的问题,即使我真的不知道“为什么”^^