2012-12-07 74 views
0

我試圖將來自一個XML文件和一個Excel XML文件的數據與XSLT合併。我無法得到它的工作,並想知道我是否可以這樣做?我沒有設法得到任何輸出,可以真正使用一些幫助。使用PHP中的XSLT合併來自XML文件的數據

<?php 

$xsl = new DOMDocument(); 
$xsl->load("file1.xsl"); 
$inputdom = new DomDocument(); 
$inputdom->load("file1.xml"); 

$proc = new XSLTProcessor(); 
$xsl = $proc->importStylesheet($xsl); 
$proc->setParameter(null, "", ""); 

$newdom = $proc->transformToDoc($inputdom); 
print $newdom-> saveXML(); 

的.xsl

如何使用SS前綴?

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> 

<xsl:variable name="file2" select="document('file2.xml')"> 
</xsl:variable> 


<xsl:template match="/Test"> 
    <Test> 
    <xsl:copy-of select="*" /> 
    <xsl:copy-of select="$file2/Test/*" /> 
    </Test> 

</xsl:template> 

</xsl:stylesheet> 

回答

0

這是一個有點很難說肯定沒有看到的問題的XML文件,但如果第二個文件是Excel的XML,然後根元素將是工作簿但你的XSLT正在尋找根測試

嘗試更換此行....

<xsl:copy-of select="$file2/Test/*" /> 

這一行

<xsl:copy-of select="$file2/*" /> 

如果你想明確的是指一個元素在你的第二個文件,並使用SS命名空間,你會這樣做

<xsl:copy-of select="$file2/ss:Workbook" /> 
相關問題