我有一个列表,我正在其中添加数据库中的数据。我的代码如下。
list.add(rs.getString(rsMetaData.getColumnName()));
object.set(list);
现在将此对象传递到输出文件流中。我使用 JAXB 和 DOM 解析器来创建 XML
write.marshall(object,outputstream);
其中object=该对象用于在xml中设置值
根据上面的代码,我从数据库的列中获取所需的值。之后,我将列表中的值设置为 xml 中的标签。但将所有内容都放在单独的标签中。
我的输出:
<value>1</value>
<value>2</value>
<value>3<value>
<value>4</value>
.
.
and so on
预期输出:
<value>1,2,3,4,5</value>
从上面提到的我的代码中,我没有得到逗号分隔的代码。请帮忙。
我遵循的另一种方法是使用 DOM 解析器:
for(String s:list){
Element n= doc.createElement("value");
n.appendChild(doc.createTextNode((s)));
}
通过这个我也没有得到逗号分隔的值
最佳答案
如果您想要使用逗号分隔的值,一般方法是将列表转换为字符串,然后将此字符串(而不是列表)添加到 XML。这是一种方法(假设您使用 Java 8):
List<String> list = Arrays.asList("1", "2", "3", "4", "5");
String commaSeparated = String.join(",", list);
System.out.println(commaSeparated); //gives you 1,2,3,4,5
在您的特定情况下(您给出的 DOM 解析器示例):在 for 循环中,您为列表中的每个值创建一个元素;您想要做的是创建一个条目(无 for 循环):
String commaSeparated = String.join(",", list);
Element n= doc.createElement("value");
n.appendChild(doc.createTextNode(commaSeparated));
关于java - 在标签之间添加逗号分隔值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46142774/