2017-04-04 101 views
0

我的XML輸入以下內容:如何在java中數組的最後一個元素後面刪除逗號?

<datafield tag="036F"> 
    <subfield code="n">Oxford University Press</subfield> 
    <subfield code="n">1991-</subfield> 
    </datafield> 

我用XSLT讀它,然後發送到Java:

<xsl:for-each select="$pica036F"> 
<xsl:variable name="codeN" select="./subfield[@code='n']" /> 
    <xsl:for-each select="$codeN"> 
    <xsl:variable name="codeBTemp" select="." /> 

    <xsl:value-of select="pica2dc:Pica036FNArray($codeBTemp)"></xsl:value-of> 

</xsl:for-each> 
</xsl:for-each> 

而這是臨危$ codeBTemp我的Java方法。 我使用它的字符串,並在每個元素後添加逗號。

public static String Pica036FNArray(String codeBTemp) { 
    String sb; 
    sb = codeBTemp; 
    setPica036FNArray(sb+","); 
    return sb; 

琴絃的concatanation是在這裏:

public static void setPica036FNArray(String pica036fnArray) { 
     pica036FNArray += pica036fnArray; 
    } 

當輸出我得到:

牛津大學出版社,1991年 - 牛津大學出版社,1991年 - ,

但它應該看起來不同(不重複,並且沒有最後的逗號): 牛津大學出版社,1991-

+0

爲什麼你不在XSLT中做所有事情?你的處理器支持哪種版本的XSLT? –

+0

我有XSLT 2.0,這不是我的代碼。在XSLT中我只能得到第一個「subfilef n」元素 –

+0

在XSLT 2.0中,這很簡單:''。 –

回答

0

「Return sb.length> 0? Sb.substring(0,sb.length() - 2));「 以這種方式應用最後一個返回行... 需要更正語法,並且必須使用多種類型的輸入進行測試 或者將其保存在集合中並使用Java 8流api編程使用','作爲分隔符