¿Hay alguna forma de obtener la ruta actual de la carpeta dentro de un archivo xslt?
necesitamos para localizar otras XML y XSLT archivos
No hay necesidad de funciones de extensión o incluso parámetros de hacer eso!
Cualquier relativos URL utilizadas en el atributo href
de una instrucción o <xsl:import>
<xsl:include>
se resuelven basa en la URL de la hoja de estilo XSLT actual - sólo tiene que tener una dirección URL que aparece como vlearly cierto en la pregunta anterior. Esto es muy conveniente para importar/incluir hojas de estilo XSLT.
La funcióndocument()
también resolver una dirección URL relativa de una manera similar, con lo que cualquier documento XML adicional accesible a través de URL anrelative.
Por último, aquí esan examplecómo estas instalaciones se utilizan masivamente en una gran biblioteca de funciones XSLT y plantillas (FXSL 2.x):
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:f="http://fxsl.sf.net/"
exclude-result-prefixes="xs xdt f"
>
<!--
This module contains the FXSL versions of the "standard" XPath functions
These are intended as convenience functions, so that they can be passed
as parameters to other functions (e.g. to f:zipWith())
or curried and passed as parameters (e.g. to f:map())
-->
<xsl:import href="func-curry.xsl"/>
<xsl:import href="func-compose-flist.xsl"/>
<xsl:import href="func-standardArithmeticXpathFunctions.xsl"/>
<xsl:import href="func-standardBooleanXpathFunctions.xsl"/>
<xsl:import href="func-standardStringXpathFunctions.xsl"/>
<xsl:import href="func-standardNodesXpathFunctions.xsl"/>
<xsl:import href="func-standardSequencesXpathFunctions.xsl"/>
<xsl:import href="func-standardAggregateXpathFunctions.xsl"/>
<xsl:import href="func-standardDateTimeXpathFunctions.xsl"/>
<xsl:import href="func-standardXSLTXpathFunctions.xsl"/>
<xsl:import href="func-standardAxisXpathFunctions.xsl"/>
</xsl:stylesheet>
No estoy seguro de por qué esto no fue votado. En realidad funciona – Tomalak
Perdón por eso. Lo rechacé por usar una extensión no estándar, pero después de agregar mi respuesta, me di cuenta de que sugerí lo mismo. Creo que no hay una forma "estándar" de hacerlo. (Excepto el uso de params) –
Gracias por explicar su razonamiento, muy apreciado. :-) – Tomalak