在Java中为xml添加新的根元素

时间:2019-10-20 15:31:57

标签: java xml jaxb

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

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

我的xml

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

我需要的是

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

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

Jaxb Marshals the same XML Message Question

由于我需要快速修复,因此考虑以某种方式附加根。

谢谢。

1 个答案:

答案 0 :(得分:1)

可能有一种更通用,更好的方法来执行您要尝试的操作,但是由于问题在于要专门使用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>