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 — Establecer el URI base para todas las transformaciones XSLT
Descripción
void xslt_set_base
( resource
$xh
, string $uri
)Establecer el URI base para todas las transformaciones XSLT, el URI base es usado con instrucciones Xpath para resolver document() y otros comandos que acceden a recursos externos. También se utiliza para resolver a URIs para los elementos <xsl:include> y <xsl:import>.
Parámetros
-
xh -
El identificador de enlace del procesador XSLT, creado con xslt_create().
-
uri -
El URI base a ser utilizado.
Valores devueltos
No devuelve ningún valor.
Historial de cambios
| Versión | Descripción |
|---|---|
| 4.3.0 |
A partir de PHP 4.3.0, el URI base por defecto está en el directorio de el script de ejecución.
En efecto, es el valor de nombre del directorio de la constante
__FILE__. El valor por defecto del URI base es menos predecible
con versiones anteriores.
|
Notas
Nota:
Por favor note que se necesita file:// adelante de la ruta cuando utiliza Windows.
h0bby1 at yahoo dot com ¶
5 years ago
edmon at oohaa dot net ¶
8 years ago
$filebase = 'file://' . getcwd () . '/xsl/';
xslt_set_base($xsltproc, $filebase);
file:// is needed for linux too.
php 4.3.8
Kelvin Cheng ¶
9 years ago
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.
