Объединение данных из XML-файлов с помощью XSLT в PHP

Я пытаюсь объединить данные из одного XML-файла и одного XML-файла Excel с XSLT. Я не могу заставить его работать и задаться вопросом, могу ли я сделать это так? Я не смог получить какой-либо результат и действительно мог бы использовать некоторую помощь.

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

Трудно сказать точно, не видя файлы XML в вопросе, но если второй файл – это Excel XML, то корневым элементом будет Workbook, но ваш XSLT ищет корень теста .

Попробуйте заменить эту строку ….

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

С этой строкой

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

Если вы хотите явно ссылаться на элемент во втором файле, используя пространство имен ss , вы бы сделали что-то вроде этого

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