1

次のコードを使用して、XML を別の XML ファイルに変換しました。しかし、XSLT を使用して一連の文字列から新しい XML ファイルを作成しようとしています。

$xsl  = simplexml_load_file('template.xsl');
$xslt = new XSLTProcessor;
$xslt->setParameter('', 'foo', $foo);
$xslt->setParameter('', 'bar', $bar);
$xslt->setParameter('', 'test', $test);

$xslt->importStyleSheet($xsl);

$data = $xslt->transformToXML($xml);

だから私がやっていることはtemplate.xsl、ノードを作成するパラメーターを渡すことであり、結果の出力がに渡され$data、PHP がファイルに書き込みます。

しかし、私が持っているサンプル コードでは、XML ファイルが最初に読み取られ、変数に保存されると想定しています$xml。ただし、データの文字列を生成しているため、XML ファイルを読み取っていません。これにより警告が生成されます。

PHP 警告: XSLTProcessor::transformToXml() は、パラメーター 1 がオブジェクトであると想定しています。

PHP を使用して XML を記述できることを認識しています - http://www.developerfusion.com/code/3944/how-to-create-xml-files/ - しかし、XSLT でこれを行う方法を知りたいです。

4

1 に答える 1

1

'PHP Warning: しかし、データの文字列を生成していて、これによりXが生成されるため、XMLファイルを読み込んでいませんSLTProcessor::transformToXml() expects parameter 1 to be object, null given'。PHPを使用してXMLを記述できることを理解して います--http ://www.developerfusion.com/code/3944/how-to-create-xml-files/-しかし、xsltを使用してこれを行う方法を知りたいです。

任意のXMLドキュメントを使用して、の最初のパラメータとして渡すことができますXSLTProcessor::transformToXml()

これは、ファイルからロードされた--などの人工的なドキュメントである可能性があり<t/>ます。

追加のXMLファイルをロードしないようにするために、すでにロードされているXSLTファイルを使用できます。

 $data = $xslt->transformToXML($xsl);

変換では、単一のテンプレート(マッチング/)があり、このテンプレート内で、必要なXMLドキュメント(結果)を生成します。

于 2012-12-29T16:45:31.073 に答える