С точки зрения производительности, я почти уверен, что DOM будет хуже, чем использование StringTemplate.Использование StringBuilder может быть немного быстрее и, возможно, даже более чистым (если используется неявно):
public CharBuffer generate() {
String content = inner == null ? "" : inner.array();
return CharBuffer.wrap( "<div id=\"" + this.getId() + "\">" + content + "</div>" );
}
Самый быстрый способ сделать это, вероятно, состоит в том, чтобы полностью избежать создания временных строк, т. Е. Напрямую записыватьa BufferedOutputWriter или PrintWriter.
Но в целом я бы предложил использовать один из выделенных API-интерфейсов Stream Writer для создания документов XML.Есть несколько неочевидных ловушек, когда вы помещаете ванильные строки непосредственно в XML-документы, не зная правильного экранирования специальных символов.Эти API обычно предлагают также эффективную реализацию, которая превосходит большинство наивных подходов.Примеры таких API: StAX, Apache XMLIO и SAX Transformer.