is it better to concatenate strings,or create a DOM tree and populate it?
XML比它看起来更棘手.不要通过连接字符串来构建它.在运行文档时应使用StAX javax.xml.stream.XMLStreamWriter.在内存使用方面,即使是大型文档也是非常合理的.
对于较小的文档,创建一个DOM树是可行的,但实际上更喜欢XMLStreamWriter.
对于较小的文档,您还可以使用XML绑定框架,例如JAXB,它与构建DOM树有效地相同,但允许您根据业务域而不是XML的方式编写代码.作为一个奖励,您可以使用与泽西相同的JAXB注释来生成JSON输出以及XML.
is it better to (‘procedurally’) consequently roll up the lines building the XML or have numerous methods handling their portion of the document?
这是上下文的您的目标应该是最大限度地提高源代码的可读性.在XML结构中重复部分往往会获得自己的方法. XML的长而扁平的部分往往会使用长时间的Java程序.
一些不寻常的缩进可能会使代码更易读:
private void write(XMLStreamWriter w) {
//...
w.writeStartElement("parentTag");
w.writeStartElement("nestedTag");
w.writeCharacters("body 1");
w.writeEndElement();
w.writeEndElement();
}
…但是这是边框真的很接近你应该提取一个帮助方法的点.
is it better to have the backbone of the XML generated via tool (which?) or every time start from a scratch?
使用XMLStreamWriter方法,或者使用JAXB等绑定框架,我看不到需要使用模板系统或类似的东西.这些框架完全有能力编写前言.
如果您必须将一小部分生成的XML注入到较大的静态模板中,则可能会使用预生成的结构.我认为这是一个边缘案例或者,我从来没有见过这种情况.