当前位置: 首页 > 知识库问答 >
问题:

如何使用java stream追加xml标记

吕俊才
2023-03-14

我有一个地图,上面有键和值和打印。我需要为这些EMPID添加标签。但当我使用stream API时,最终的结果是很糟糕的。

    String l= map1.entrySet().stream()
    .map( n -> b.append("<emp>"+n.getKey()+"</emp" )).collect(Collectors.joining());

<emp>1234</emp>
<emp>1234</emp>
<emp>456</emp>
<emp>1234</emp>
<emp>456</emp>
<emp>789</emp>
<emp>1234</emp>
<emp>456</emp>
<emp>789</emp>
<emp>876</emp>

共有1个答案

毋弘光
2023-03-14

为了修复输出,您需要删除StringBuilderb即。

String l = map1.entrySet().stream()
    .map( n -> "<emp>"+n.getKey()+"</emp>").collect(Collectors.joining());

在您的代码中,b保留前一次迭代的值,因为您将值追加到它,这会导致重复的元素。

或者,您也可以使用带有foreach的流将每个值附加到StringBuilder。

StringBuilder b = new StringBuilder();
map1.entrySet().stream().forEach(n -> b.append("<emp>" + n.getKey() + "</emp>"));
System.out.println(b);
 类似资料:
  • 我想使用XSL编码在XML开始时添加样式表标记 输入XML:

  • 我想将appender配置为使用自定义标记或警告、错误和更高级别的日志。因此,它将包含带有自定义标记或错误、警告等的日志。我可以在不为警告和错误创建额外标记的情况下执行此操作吗?这是我的配置: 但不会记录错误和警告。我在AppenderRef中将此appender的级别设置为INFO。 PS:我使用log4j2版本2.5与slf4j 1.7.12的标记谢谢

  • 在发布这个问题之前,我已经做了我的研究,关于我没有正确使用additivity属性的问题,下面是我的log4j2.xml的一个片段,我试图实现的是,在记录器中定义的每个appender ref应该只附加它所定义级别的日志,但是所有的appender都附加了所有日志消息,而不管日志级别如何,因此,例如,调试记录器仍然得到了我不想要的错误消息。如有任何投入,将不胜感激。

  • 我只是有一些动态XML文件,其值如下所示: 完整的XML结构: 我只想在下面的标记中将这些值追加到现有的testNG可电子邮件报告中:

  • 在我的项目中,我遇到了一种情况,即封送一个pojo对象,第一次将输出写入XMLfile中,然后在同一个文件中添加具有不同值但相同节点和子节点的相同封送对象。下面是代码- 当Person构造函数中的'id'发生更改,并且下次用不同的属性值封送Person对象时,'file.xml'文件将被覆盖,我丢失了以前的输出。简单地说,我希望每次“id”get发生更改时都追加封送的Person对象。即用不同的值

  • 我想使用OutputStreamWriter将数据追加到XML文件中,但结果如下所示 如何实现正确的格式