Nat*_*han 1 html java data-structures
我正在用Java生成HTML格式的日志.是否有最适合存储HTML的数据结构?
这对我来说似乎不太干净:
String html_header = "<!DOCTYPE html>\n<html><head><title>blah</title>...</html>";
Run Code Online (Sandbox Code Playgroud)
当我需要在标记中使用属性并且必须转义该属性周围的引号时,这可能变得特别难看.
创建一个我可以通过Java读取的HTML模板的数据文件会更好吗?
根据您的具体需求,您可以选择多种方式.如果你想用对象构建一个文档结构,可以使用DOM4j,它允许你编写如下代码:
Document document = DocumentHelper.createDocument();
Element html = document.addElement( "html" );
Element head = html.addElement("head");
head.addElement("title").addText("blah");
Element body = html.addElement("body")
// etc
Run Code Online (Sandbox Code Playgroud)
然后可以将此结构转换为字符串,并且将为您处理所有格式详细信息(打开/关闭标记,封闭属性等).Jakarta的Element Construction Set提供了一个类似的API,它也更具有HTML特性.
或者,您可以包含一个模板引擎,该引擎允许您使用包含变量值和基本逻辑的占位符来编写HTML文件.然后,您将这些模板与数据组合以生成最终的HTML.FreeMarker是一个非常广泛使用的引擎,如果你不介意花一点时间学习他们的模板语言,它会给你很大的灵活性.
如果你走这条路线,你会创建一个如下模板:
<html>
<head>
<title>${myTitle}</title>
</head>
<!-- blah -->
</html>
Run Code Online (Sandbox Code Playgroud)