Xslt 从XSL文件中获取样式表目录-用于可配置的xml位置

Xslt 从XSL文件中获取样式表目录-用于可配置的xml位置,xslt,xslt-2.0,Xslt,Xslt 2.0,我有一个xml的xsl文件。xml文件的位置应该是可配置的(这是通过在xml中配置样式表的href路径实现的),但xsl正在使用一些图像和其他一些javaScript文件,并且需要有到它们的路径。路径就在样式表文件附近,所以一旦我可以获得xsl目录,我就可以转到它们。 例如: 在我的xml中,我有:?xml样式表type=“text/xsl”href=“.\Files\Style\test.xsl”> 我希望从xsl中指向“\Files\Style”作为图像的位置 我该怎么做呢?这是一个XSLT

我有一个xml的xsl文件。xml文件的位置应该是可配置的(这是通过在xml中配置样式表的href路径实现的),但xsl正在使用一些图像和其他一些javaScript文件,并且需要有到它们的路径。路径就在样式表文件附近,所以一旦我可以获得xsl目录,我就可以转到它们。 例如: 在我的xml中,我有:?xml样式表type=“text/xsl”href=“.\Files\Style\test.xsl”> 我希望从xsl中指向“\Files\Style”作为图像的位置
我该怎么做呢?

这是一个XSLT 1.0解决方案(XSLT 2.0具有更强大的字符串处理功能,如正则表达式):


这是一个XSLT 1.0解决方案(XSLT 2.0具有更强大的字符串处理功能,如正则表达式):


查看问题的解决方案:)提示:如果提供的答案解决了问题,您可以通过单击问题左上方的复选标记来接受它。你也可以投票,这取决于你目前的分数(我认为你必须有50分,才能有投票权)谢谢,我仍然需要你的帮助:)我的xsl中有一个到html的xsl尝试,我有一些模板和一些java脚本函数,将信息传递到其他模板和jScript的正确方法是什么?如果我在同一个fiel 2中使用match模板,会有问题吗?因为我没能找到那条路。这可能是一个初学者的问题,但我在这方面还是新手。我很感激你的帮助这是一个新的,不是很明确的问题--请将其作为一个单独的问题提出,提供代码示例,并尝试尽可能精确地表述你的问题。请参阅问题的解决方案:)提示:如果提供的答案解决了问题,您可以通过单击问题左上方的复选标记来接受它。你也可以投票,这取决于你目前的分数(我认为你必须有50分,才能有投票权)谢谢,我仍然需要你的帮助:)我的xsl中有一个到html的xsl尝试,我有一些模板和一些java脚本函数,将信息传递到其他模板和jScript的正确方法是什么?如果我在同一个fiel 2中使用match模板,会有问题吗?因为我没能找到那条路。这可能是一个初学者的问题,但我在这方面还是新手。我很感激你的帮助这是一个新的,不是很明确的问题——请把它作为一个单独的问题来问,提供代码示例,并尽可能精确地表述你的问题。
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>

 <xsl:template match="processing-instruction()">
   <xsl:variable name="vpostHref"
    select="substring-after(., 'href=')"/>

   <xsl:variable name="vhrefData1"
    select="substring($vpostHref,2)"/>

   <xsl:variable name="vhrefData2"
    select="substring($vhrefData1, 1,
                      string-length($vhrefData1)-1
                      )"/>

   <xsl:call-template name="stripBackwards">
    <xsl:with-param name="pText"
      select="$vhrefData2"/>
    <xsl:with-param name="pTextLength"
     select="string-length($vhrefData2)"/>
   </xsl:call-template>
 </xsl:template>

 <xsl:template name="stripBackwards">
  <xsl:param name="pText"/>
  <xsl:param name="pStopChar" select="'\'"/>
  <xsl:param name="pTextLength"/>

  <xsl:choose>
   <xsl:when test="not(contains($pText, $pStopChar))">
     <xsl:value-of select="$pText"/>
   </xsl:when>
   <xsl:otherwise>
     <xsl:variable name="vLastChar"
       select="substring($pText,$pTextLength,1)"/>
     <xsl:choose>
       <xsl:when test="$vLastChar = $pStopChar">
        <xsl:value-of select="substring($pText,1,$pTextLength -1)"/>
       </xsl:when>
       <xsl:otherwise>
        <xsl:call-template name="stripBackwards">
          <xsl:with-param name="pText"
           select="substring($pText,1,$pTextLength -1)"/>
          <xsl:with-param name="pTextLength" select="$pTextLength -1"/>
          <xsl:with-param name="pStopChar" select="$pStopChar"/>
        </xsl:call-template>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:otherwise>
  </xsl:choose>
 </xsl:template>
</xsl:stylesheet>
<?xml-stylesheet type="text/xsl" href=".\Files\Style\test.xsl"?>
<t/>
.\Files\Style