例 2: XSLT を使用してドキュメント経由で XML を変換します。これにより、文書処理とコンテンツ管理が大幅に容易になります。
始める前に、xerces.jar ファイルと xalan.jar ファイルを java.class.path ディレクトリに置く必要があります (これら 2 つのファイルは Xalan-Java 1.2 に含まれており、xml.apache.org からダウンロードできます)。
PHP プログラムは次のとおりです:
関数 xslt_transform() は XML および XSL ファイルをパラメーターとして受け取り、形式はファイル名 (foo.xml など) または URL (http://localhost など) にすることができます。 /foo.xml)。
function xslt_transform($xml,$xsl) {
// XSLTProcessorFactory オブジェクトを作成します。 "org.apache.xalan.xslt.XSLTProcessorFactory"); // XSLTProcessorFactory メソッド getProcessor( )
// 新しい XSLTProcessor オブジェクトを作成します。
$XSLTProcessor = $XSLTProcessorFactory->getProcessor();
// XSLTInputSource オブジェクトを使用して XSLTProcessor に入力を提供します
// 変換用のオブジェクトを作成します。
// XML ソースと XSL 入力ソースの両方。
// XSLTInputSource のパラメーターは (この場合) 'システム識別子' (URI) です。
// システム識別子の場合は、URL またはファイル名を指定できます。は URL です。
// 完全に解決される必要があります。
$xmlID = new java("org.apache.xalan. xslt. ("java.io.StringWriter");
// 出力用の ResultTarget オブジェクトを作成します。 XSLTResultTarget
// クラスを使用します。 XSLTResultTarget のパラメーターは (この場合) 'character
// ストリーム'、つまり stringWriter オブジェクトです
$resultTarget = new java("org.apache.xalan.xslt.XSLTResultTarget") , $stringWriter);
// XSLTProcessors のメソッド process() で入力を処理します。 この
// メソッドは、XML 入力を変換し、
// 結果を結果ターゲットに配置します。 >process($xmlID,$stylesheetID,$resultTarget);
// stringWriters のメソッド toString() を使用して
// バッファの現在の値を文字列として返し、
// 変換された結果を取得します。 = $stringWriter->toString();
$stringWriter->close();
}
?> 以下のように関数を呼び出すことができます。ルーチンでは、変数 $xml は $xsl と同様に URL 文字列を指します。この例では、phpbuilder.com の最新の記事タイトル 5 件が表示されます。
$xml = "http://www.phpbuilder.com/rss_feed.php?type=articles&limit=5";
$xsl = "http://www.soeterbroek.com/code/ xml/rss_html.xsl";
$out = xslt_transform($xml,$xsl);
echo $out;
?>
プログラムをローカル マシンで実行している場合は、関数のパラメータが正しいファイル名を指定してください。
$xml = "/web/htdocs/xml_java/rss_feed.xml";
$xsl = "/web/htdocs/xml_java/rss_html.xsl"; $xsl);
echo $out;
?>
この効果は他のメソッドでも実現できますが、おそらくそれらのメソッドの方が優れていますが、この例は PHP による JAVA クラスの呼び出しをより深く理解するのに役立ちます。