2016-08-27 8 views
1

でこれは私が実際にナットドライブ...私は正規表現のプロではないよ...すっごく正規表現XSL/XSLT

私は、オンラインでいくつかの正規表現の例を試したが、どれ!私が照合したいどのような...

を働いている:

/path1/path2/filename.zip$parameter1=aaaaa 

私は何を取得したいことです:クエリパラメータ/ sのまたは先頭のスラッシュなし

path1 

path2 

とファイル名( ...)ので、ちょうどfilename.zip

そして、ええ、私はXSLT 1.0で立ち往生しています...

+1

あなたはXSLT 1.0で立ち往生している場合は、あなたの質問は正規表現についてではありません。 –

答えて

0

あなたの出発点としてこれを試してみてください:

XSLT任意のXML入力に加え1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text" encoding="UTF-8"/> 

<xsl:param name="query">/path1/path2/filename.zip$parameter1=aaaaa</xsl:param> 

<xsl:template match="/"> 
    <xsl:call-template name="tokenize"> 
     <xsl:with-param name="text" select="substring-before($query, '$')"/> 
    </xsl:call-template> 
</xsl:template> 

<xsl:template name="tokenize"> 
    <xsl:param name="text"/> 
    <xsl:param name="delimiter" select="'/'"/> 
     <xsl:variable name="token" select="substring-before(concat($text, $delimiter), $delimiter)" /> 
     <xsl:if test="$token"> 
       <xsl:value-of select="$token"/> 
       <xsl:text disable-output-escaping="yes">&#10;</xsl:text> 
     </xsl:if> 
     <xsl:if test="contains($text, $delimiter)"> 
      <!-- recursive call --> 
      <xsl:call-template name="tokenize"> 
       <xsl:with-param name="text" select="substring-after($text, $delimiter)"/> 
      </xsl:call-template> 
     </xsl:if> 
</xsl:template> 

</xsl:stylesheet> 

、結果は以下のようになります。

path1 
path2 
filename.zip 
+0

十分に近いですが、私はマシン上でテンプレートを使って作業することはできませんが、少なくとも正しい方向に私を指摘しました! – Unomagan