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

标签 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/..../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/

相关文章:

javascript - 脚本不会在 WordPress 页脚中加载

php 在终端上打印出 "Terminated",没有任何错误

xml - Coldfusion XMLFormat() 不转换所有字符

sql - 基于子元素值使用 PLSQL 提取 XML

xml - 使用 XSLT 扩展 HTML5 视频元素

php - 使用 PHP 查询 SQL Server 数据库

javascript - 使用 preg_match 从 html 中提取 JS

xml - Haskell RSS、邮件和 XML 库选择

xslt - wix 快捷方式 xsl 文件

xml - 如何使用 XPath 或 XSLT 将首字母更改为小写