我正在尝试使用以下代码
# 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/..../xsl/1234567890.xsl行/home/...../myfile.php中的第2行元素样式表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版本中!
最佳答案
如果将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和PHP手册中使用的wikipedia's article about XSL Transformations都使用了“example .xsl file”。
所以,我想这应该可以解决您的问题,即使我不太了解“为什么” ^^
关于php - 尽管XSL样式表几乎为空,但XSLTProcessor::importStylesheet()中的PHP警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1382923/