2009-09-05 47 views
2

我嘗試使用下面的代碼PHP的警告:: importStylesheet()儘管近期空XSL樣式表

# 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]:編譯錯誤:file /home/..../xsl/1234567890.xsl第2行元素樣式表位於/home/...../myfile .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

這似乎加載罰款,如果你更換的xsl:這一個樣式錶行:

<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 ...

所以,我猜這應該有助於解決您的問題,即使我真的不知道「爲什麼「^^

+0

太棒了!那* DID *工作!謝謝帕斯卡! – Steve 2009-09-05 11:17:51

+0

不客氣:-) – 2009-09-05 11:24:16