替换XML中的空值

时间:2017-09-11 17:05:43

标签: java xml

我正在使用下面提到的代码在arraylist中用xml编写逗号分隔值。

   String commaSeparated = String.join(",", list);
Element n= doc.createElement("value");
n.appendChild(doc.createTextNode(commaSeparated));

我的arraylist包含一些空值,如下所示:

<value>1,2,3,null,4,5,null,6</value>

我想用其他一些值'a'替换这个null。

我正在使用以下代码执行此操作:

if(commaSeparated==null){
commaSeparated="a";
}

但我仍然得到空值而不是预期的输出。

预期产出:

<value>1,2,3,a,4,5,a,6</value>

请帮忙

3 个答案:

答案 0 :(得分:0)

你应该尝试改变:

if(commaSeparated==null){ // the complete string is not null
    commaSeparated="a"; //never reached
}

commaSeparated=commaSeparated.replaceAll("null","a"); //replaces all null substrings with 'a'

答案 1 :(得分:0)

一些解释 - 你可能错过了commaSeparated是这个最后一个字符串,其值被逗号分割。因此,试图找出它是否真的不是一个解决方案。

您可以在最终字符串上执行此操作,或者您可以检查列表中的每个元素,并在预期时使用您自己的值创建新元素。即

List<String> formattedList = new ArrayList<String>();
for (String element : list) {
    if(element == null){
       formattedList.add("a");
    }else{
       formattedList.add(element);
    }
}

现在您可以将formattedList添加到String.join

答案 2 :(得分:0)

尝试替换之前的空值,例如:

list.replaceAll(s -> s == null ? "a" : s);
    String commaSeparated =String.join(",", list);