Я пытаюсь объединить данные из одного 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 ищет root Тест.
Попробуйте заменить эту строку....
<xsl:copy-of select="$file2/Test/*" />
С помощью этой строки
<xsl:copy-of select="$file2/*" />
Если вы хотите явно ссылаться на элемент во втором файле, используя пространство имен ss, вы сделаете что-то вроде этого
<xsl:copy-of select="$file2/ss:Workbook" />