PHP:XSLTに外部から引数(パラメータ)を渡す方法:DOM XML関数
PHP (55 items)
2005年01月30日
XSLTのパラメータを使用することで、外部から値を渡すことが出来る。
しかし、これをブラウザ呼び出しで渡すことは出来ない。
(リクエスト呼び出しで渡せない)
つまり、”test.xml”というXMLがあって、
それに紐づく、”test.xsl”というXSLTがあるとする。
このXSLTファイルに、外部から値を渡したい場合、
下記のようにはできないのである。
<xsl:param name="prm_test" />
しかし、これをブラウザ呼び出しで渡すことは出来ない。
(リクエスト呼び出しで渡せない)
つまり、”test.xml”というXMLがあって、
それに紐づく、”test.xsl”というXSLTがあるとする。
このXSLTファイルに、外部から値を渡したい場合、
下記のようにはできないのである。
■動作例
prm_testというパラメータに”ABCD”をセットし、”test.xsl”に渡したい。
・失敗例
この場合は、そのXMLを処理するプログラム言語の関数を使用する。
呼び出し方法は、そのXMLを処理するプログラム毎によって異なるが、
PHPのDOM XML関数を使用する場合は以下の通り。
・成功例
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値をセットする
前の記事 次の記事