我的XML输入如下:
[Route("allsummaries/yesterday/{month?:regex([0-9]{2})}/{day?:regex([0-9]{2})}/{year?:regex([0-9]{4}}")]
我用XSLT读取它然后发送到Java:
<datafield tag="036F">
<subfield code="n">Oxford University Press</subfield>
<subfield code="n">1991-</subfield>
</datafield>
这是我接收$ codeBTemp的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>
字符串的连接在这里:
public static String Pica036FNArray(String codeBTemp) {
String sb;
sb = codeBTemp;
setPica036FNArray(sb+",");
return sb;
作为输出我得到:
牛津大学出版社,1991-,牛津大学出版社,1991年 - ,
但它应该看起来不同(没有重复,也没有最后一个逗号): 牛津大学出版社,1991年 -
答案 0 :(得分:0)
“返回sb.length&gt; 0?Sb.substring(0,sb.length() - 2));” 以这种方式应用最后一条返回线...... 需要更正语法,并且必须使用多种类型输入进行测试。 或者将其保存在集合中并使用Java 8 stream api编程来使用','作为分隔符