2009-02-24 26 views

Respuesta

15

No existe tal función XPath, o la extensión XSLT para la función XPath para hacer esto en XSLT v1/XPath v1.

Es posible que no haya ningún archivo, e incluso si no hay ninguna razón para que el motor XSLT tenga ese nombre (considere cargar el contenido del archivo en un búfer, analizar el búfer en un DOM y luego pasarlo el DOM al procesador XSLT).

Deberá pasar el nombre del archivo en el procesador para que esté disponible como parámetro en la transformación.

+0

Molesto si solo quiere un comentario 'creado usando hoja de estilo x' :-( –

+4

-1: existe tal función, en XPath 2.0 (ver t la otra respuesta) –

+2

@NormanGray: El final de la pregunta deja en claro que se trata de XSLT v1, por lo que la presencia de dicha función V2 es irrelevante. – Richard

30

base-uri() es una función estándar de XPath 2.0, por lo que cuando se ejecuta XSLT 1.0 esta función no estará disponible.

En XSLT 1.0, el nombre de archivo (¿de qué?) Se puede pasar como un parámetro para la transformación.

Tenga en cuenta que no siempre es posible producir un nombre de archivo para una hoja de estilo o para un documento XML: una o ambas pueden residir en la memoria sin un archivo asociado.

No está claro, a partir del problema, qué nombre de archivo debe producirse.

Aquí es cómo encontrar los nombres de archivo en XPath 2.0/XSLT 2.0:

El nombre de archivo del documento actual:

base-uri() 

El nombre de archivo del módulo de hoja de estilo actual:

base-uri(document('')) 
Cuestiones relacionadas