所有, 我在字段列表那些誰擁有CLOB類型,我寫它通過這樣一個逗號separed搜索[字段1,字段2,...字段N]在xslt中管理標誌?
我的問題是如何識別第一個匹配的字段寫無逗號(我不能使用位置(),因爲匹配的第一個字段可以是列表的第一個或列表的最後一個)
我想在xslt,
variable is_first = TRUE;
if(is_first) {
do smthng;
isfirst = False;
}
所有, 我在字段列表那些誰擁有CLOB類型,我寫它通過這樣一個逗號separed搜索[字段1,字段2,...字段N]在xslt中管理標誌?
我的問題是如何識別第一個匹配的字段寫無逗號(我不能使用位置(),因爲匹配的第一個字段可以是列表的第一個或列表的最後一個)
我想在xslt,
variable is_first = TRUE;
if(is_first) {
do smthng;
isfirst = False;
}
其實在xslt中做這樣的事情是不可能的,因爲變量e是不可變的。可能會有解決方法,但您必須更詳細地指定您的需求。
編輯:
如果輸入字符串是用逗號分隔值...
<xsl:variable name="inputString" select="'field1,field2,field3a,field4,field3b'" />
...你可以使用tokenize()
功能...
<xsl:variable name="tokenized" select="tokenize($inputString, ',')" />
.. 。然後選擇對應您的條件的項目
<!-- Select item corresponding to condition (e.g. it contains 3). Take first one if there are several such items -->
<xsl:value-of select="$tokenized[contains(., '3')][1]" />
EDIT2:
可以使用的xsl:value-of
(XSLT 2.0),用於分隔的值輸出separator
屬性。
假設以下變量
<xsl:variable name="list">
<item>first</item>
<item>second</item>
<item>third</item>
</xsl:variable>
此<xsl:value-of select="$list/item" separator="," />
使得期望的輸出first,second,third
實際上要解釋更多:我想要一個輸出「field1,field2 ... fieldn」不是輸入,我的問題是如何在字段之間寫入逗號xsl – Aymanadou
我已經離開了一段時間,很抱歉以後響應。我改進了我的答案 - 請檢查它。 –
需要編寫此使用功能碼,而不是程序代碼。在沒有看到上下文的情況下進行轉換是不可能的(從問題開始而不是從低級語言的解決方案開始工作要容易得多)。
但在XSLT最常見相當於將採取的形式
<xsl:for-each select=".....">
<xsl:if test="position() = 1"><!-- first time code --></xsl:if>
....
</xsl:for-each>
你問「我該如何實現這個算法」。一個更好的問題是「這是我試圖解決的問題,我應該使用什麼算法」。 –
我試着根據你的問題編輯改進我的答案。 –