2011-11-03 3 views
0

可能性の重複:
Does xslt have split() function?XSLで文字列をトークン化し、for-eachを使ってトークンを反復処理する方法は?

私はそれぞれの値を印刷するために、それぞれ使用してトークンを反復処理、その後、私のXSLスタイルシートにカンマで区切られた変数をトークン化したいですトークン、これを行うための最善の方法は何ですか?

<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/> 

<xsl:for-each select=???/> 
    <!-- print name of token --> 
</xsl:for-each> 
+0

XSLT 1.0または2.0? –

+0

私は1.0を使用していると思いますが、XSLTコンパイラはstr:tokenize()について不平を言っています – raffian

+0

XSLT 1.0を使用している場合、次の質問は「どのXSLTエンジンですか? –

答えて

2

よくXSLT 2.0を使用すると、単にfor-each select="tokenize($columns, ',')"となります。 (偶数を可能に

<xsl:for-each select="str:tokenize($columns, ',')" xmlns:str="http://exslt.org/strings">...</xsl:for-each> 
+0

私はそれを使ってみましたが、コンパイルしていません。 select = "tokenize($ columns、 '、')"は有効なXpath式ではなく、select = "str:tokenize($ columns、 '、')"は機能しません。 – raffian

0

あなたはXSLT 1.0とXPath 1.0を使用している場合、あなたは

<xsl:variable name="columns" select="'EMPID,NAME,DEPT"/> 

を書き込むことはできません:XSLT 1.0を使用すると、同様のEXSLTまたは他の拡張機能がサポートされているかどうかを確認する必要があります偽の一重引用符:

XPathの呼び出しを使用して文字列を分割する再帰的なテンプレートを書くことができます。これはstring-beforeとstring-afterです。

あなたが実際のデータを含めて詳細を記述する必要がある場合は、おそらく私たちはあなたを助けることができます。

関連する問題