Слияние данных из XML-файлов с XSLT в PHP

0

Я пытаюсь объединить данные из одного 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>
Теги:
xpath
xslt

1 ответ

0
Лучший ответ

Немного сложно сказать, не видя 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" />

Ещё вопросы

Сообщество Overcoder
Наверх
Меню