i use xslt and page can be generated in two mode, one using <? xml-stylesheet href='page.xsl' >, one other using the php sablotron lib, the first one use path relative to the xsl file for includes , but the second with sablotron consider all the includes as relative to the set base path, is there any way to get sablotron to resolve include as relative to xslt file instead of the set_base for all files ?
xslt_set_base
(PHP 4 >= 4.0.5)
xslt_set_base — 全ての XSLT 変換用の基準 URI を設定する
説明
void xslt_set_base
( resource $xh
, string $uri
)
全てのXSLT変換の基準URIを設定します。基準URIは、外部リソースにア クセスするdocument()及び他のコマンドを解決する際にXpath命令に関し て使用されます。 また、<xsl:include> と <xsl:import> 要素のための URI を解決するために使用されます。
返り値
値を返しません。
変更履歴
| バージョン | 説明 |
|---|---|
| 4.3.0 | 4.3 以降、デフォルトのベース URI は実行しているスクリプトのディレクトリです。 実際には __FILE__ 定数の値のディレクトリ名です。 4.3 以前では、デフォルトのベース URI はほとんど予想できません。 |
注意
注意:
Windows を使用している場合、 file:// がパスの前に必要であることに注意してください。
h0bby1 at yahoo dot com
27-Feb-2008 02:20
edmon at oohaa dot net
04-Oct-2004 01:09
$filebase = 'file://' . getcwd () . '/xsl/';
xslt_set_base($xsltproc, $filebase);
file:// is needed for linux too.
php 4.3.8
Kelvin Cheng
10-Mar-2004 11:44
It works great on my windows platform as below.
<?php
$xh = xslt_create();
$fileBase = 'file://' . getcwd () . '/';
xslt_set_base ( $xh, $fileBase );
...
?>
Actually, it make use of the getcwd() to get the current directory. Hope it can help.
