2011-08-15 4 views
0

これはなぜ機能していないのですか? ハッシュタグは、ソース文書が識別される別の要素を参照するためのものです。XSLT部分文字列とハッシュタグ

ここで、次のドキュメントで列区切りを表示したいとします。これは次のようになります: | S45rb |。私は単純なsubstring関数を使ってハッシュタグを取り除くことができると思った。

<xsl:template match="TU:cb"> 
    <xsl:variable name="hashms"><xsl:value-of select="//TU:cb/@ed"/></xsl:variable> 
    <xsl:variable name="ms"><xsl:value-of select="substring($hashms,1,1)"/></xsl:variable>  

    <span>| <xsl:value-of select="$ms"/> <xsl:value-of select="//TU:cb/@n"/> |</span> 
</xsl:template> 

このようにすると、次の結果が得られます。|#75ra |。引数の最初の1は文字列の最初の文字を参照してはならず、2番目の1は1文字上を移動し、希望のままにしておきます。S?代わりに私はSを取得せず、ハッシュタグだけを取得します。私が知らないハッシュタグや文字列について何かありますか?

ありがとうございました。あなたは(#の後に)二番目の文字で開始する場合

答えて

1

XSLは、0ベースではない、それはあなたがまた省略することができます2ではなく1

http://www.w3schools.com/Xpath/xpath_functions.asp

substring($hashms,2,1) = S 

する必要があります後で拡張性のために有益である可能性がある。特に#が識別子の後に来るものがあれば、コードを制限する理由は?

substring($hashms,2) = S 
substring('#S2',2) = S2 
+0

解決済み - その理由は1,235ポイントです。私はこれを促進するためにあなたがより多くを得ることを願っています – Jeff

関連する問題