我的XML输入如下:
<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;
字符串的连接如下:
public static void setPica036FNArray(String pica036fnArray) {
pica036FNArray += pica036fnArray;
}
作为输出,我得到:
牛津大学出版社,1991-,牛津大学出版社,1991-
但是它应该看起来不一样(,没有重复,没有最后的逗号,):牛津大学出版社,1991年-
发布于 2017-04-04 16:26:56
“返回sb.length >0? Sb.substring(0,sb.length()-2);”以这种方式应用最后的返回行.需要更正语法,并需要使用几种类型的输入进行测试。或将其保存在集合中,并使用Java 8流api编程来使用“,”作为分隔符。
https://stackoverflow.com/questions/43211418
复制相似问题