如何在Java中美化XML字符串
如何在Java中美化XML字符串
我有一个格式不正确的XML字符串。我想使用Java进行正确的缩进。关于这个问题,Stack Overflow上有很多答案。其中最广泛接受和出色的答案是这个:在Java 8中漂亮打印XML。
但是这个答案的问题是,代码总是需要一个根元素,而我的字符串中有以下XML标签:
New York Ottawa
如你所见,这里没有根元素,只有多个person标签。
我尝试查看上述答案中使用的库是否有可用的方法,但没有结果。
我不知道是否有解决办法。但如果有人能想到一些方法,我会非常感激。
附言:在将此问题标记为重复之前,请务必阅读问题。我知道在Stack Overflow上有类似的问题,但我的问题是非常不同的。
如何在Java中美化XML字符串
有时候我们需要将XML字符串进行美化,使其更易读。下面是一种实现方法:
我们可以使用字符串操作来实现。假设我们有一个名为xml的字符串,其中包含以下结构:
New York Ottawa
首先,我们需要添加一个根元素:
xml = "" + xml + " ";
这将给我们的结构添加了一个根元素,变成了:
New York Ottawa
这是一个有效的XML文档,我们可以使用下面的方法来进行美化:
// 使用美化方法对xml进行美化 xml = beautify(xml);
美化后的结果如下:
New York Ottawa
最后,我们可以使用简单的字符串替换来移除根元素:
xml = xml.replaceAll("<\\/?myDummyRoot>", "");
这样,我们就得到了一个可读的XML文档(虽然有一些额外的空格缩进)。
事实上,我们可以将xml分成多个chunk,每次处理1000个元素,然后再进行美化。这样可以提高效率。具体做法如下:
// 将xml分成多个chunk Listchunks = splitIntoChunks(xml, 1000); // 对每个chunk进行美化 for (String chunk : chunks) { chunk = beautify(chunk); // ... }
以上就是如何在Java中美化XML字符串的方法。希望对你有所帮助!