java - 在标签之间添加逗号分隔值

标签 java xml

我有一个列表,我正在其中添加数据库中的数据。我的代码如下。

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/

相关文章:

java - 使用 Picasso Android 时出现错误 RecyclerView

java - 如何在不下载 Google Cloud Java SDK(不在 App Engine 上)的情况下对服务帐户进行身份验证

java - App Engine - 后台线程不工作

java - 使用 Graphics2D 贝塞尔曲线在单一形状中绘制多条路径

php - 使用 unset() 删除 XML 中的节点; PHP/simplexml_load_file

java - 树结构和 XML

C++ Boost 循环遍历未知的 ptree 和属性的列表值

java - 如何在JAVA中的map类型中使用put方法?

java - 使用 XMLStreamReader 在 Java 中解析 XML 时出现问题

android - 找不到属性 'menu' 的资源标识符