Web Artisan Blog - ウェブ アルチザン ブログ

PHP:XSLTに外部から引数(パラメータ)を渡す方法:DOM XML関数

PHP (55 items)

2005年01月30日

XSLTのパラメータを使用することで、外部から値を渡すことが出来る。

<xsl:param name="prm_test" />



しかし、これをブラウザ呼び出しで渡すことは出来ない。
(リクエスト呼び出しで渡せない)

つまり、”test.xml”というXMLがあって、
それに紐づく、”test.xsl”というXSLTがあるとする。
このXSLTファイルに、外部から値を渡したい場合、
下記のようにはできないのである。
■動作例
prm_testというパラメータに”ABCD”をセットし、”test.xsl”に渡したい。

・失敗例

http://www〜.com/test.xml?prm_test=ABCD


http://www〜.com/test.xsl?prm_test=ABCD




この場合は、そのXMLを処理するプログラム言語の関数を使用する。
呼び出し方法は、そのXMLを処理するプログラム毎によって異なるが、
PHPのDOM XML関数を使用する場合は以下の通り。

・成功例

@PHP4
$dom = domxml_open_file('test.xml');
$xsldoc = domxml_xslt_stylesheet_file('test.xsl');
$params = array('prm_test' => 'ABCD');
$result = $xsldoc->process($dom, $params);
※process関数の第2引数に、配列でパラメータをセットする


@PHP5
$dom = new DOMDocument;
$dom->loadXML('text.xml');
$xsl = new DomDocument;
$xsl->load('test.xsl');
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl);
$proc->setParameter('', 'prm_test', 'ABCD');
$result = $proc->transformToXML($dom);
※setParameter関数の第2、3引数に、パラメータ名とValue値をセットする


前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=419