首页 > 解决方案 > 在 Java 中为 xml 添加新的根元素

问题描述

我在 java 中有一个 XML 格式的字符串。请注意,它不是 xml 文件,而是 XML 格式的字符串

我需要为此附加一个新的根元素。

我的 xml

<Country>
  <Street>ABC</Street>
  <City>XYZ</Street>
</Country>

我需要的是

<Location>
    <Country>
       <Street>ABC</Street>
       <City>XYZ</Street>
    </Country>
</Location>

我尝试了很多方法,这也与我之前发布的问题有关。

Jaxb 编组相同的 XML 消息问题

由于我需要快速修复,所以想以某种方式附加根。

提前致谢。

标签: javaxmljaxb

解决方案


可能有一种更通用、更好的方法来做你想做的事情,但因为问题是关于专门使用String...

在评论中,你说缩进很重要。这意味着您需要缩进到目前为止的所有内容,即添加 2 或 4 个空格或一个制表符,或者您想要缩进多少。这需要在每个\n字符之后完成。

然后,您可以将其放在<newRoot>\n字符串的开头和字符串\n</newRoot>的末尾。

注意:这只会“按预期”对已经格式化的 XML 输入字符串起作用。换句话说,如果你给它

<t1>
  <t2>
    <t3>
  </t3>
  </t2>
</t1>

(不是一致的缩进)

它将返回相同的内部 XML,但添加了 1 个一致的缩进级别:

<t0>
  <t1>
    <t2>
      <t3>
    </t3>
    </t2>
  </t1>
</t0>

推荐阅读