0

1つのXMLファイルと1つのExcelXMLファイルのデータを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ファイルを見ずに確実に言うのは少し難しいですが、2番目のファイルがExcel XMLの場合、ルート要素はワークブックになりますが、XSLTはテストのルートを探しています。

この行を置き換えてみてください。

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

この行で

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

ss名前空間を使用して、2番目のファイルの要素を明示的に参照する場合は、次のようにします。

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