我正在尝试使用以下代码
# 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版本中!
答案 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 ......
所以,我猜这应该有助于解决你的问题,即使我真的不知道“为什么”^^