0

我试图将来自一个 XML 文件和一个 Excel XML 文件的数据与 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>
4

1 回答 1

0

在没有看到问题中的 XML 文件的情况下很难确定,但如果第二个文件是 Excel XML,那么根元素将是Workbook但您的 XSLT 正在寻找Test的根。

尝试替换此行....

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

有了这条线

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

如果你想显式引用第二个文件中的元素,使用ss命名空间,你会做这样的事情

<xsl:copy-of select="$file2/ss:Workbook" />
于 2012-12-07T13:35:19.907 回答