我想用Java代码创建HTML文档,如何在不依赖第三方库的情况下有效利用Java SE 1.7来实现该目标?创建HTML文档
目标是不必手动将html字符串附加在一起,并获得一些帮助保持html有效。
我想用Java代码创建HTML文档,如何在不依赖第三方库的情况下有效利用Java SE 1.7来实现该目标?创建HTML文档
目标是不必手动将html字符串附加在一起,并获得一些帮助保持html有效。
HTML仅仅是XML,所以使用的DocumentBuilderFactory创建一个XML DOM文档,然后用你的HTML元素填充它,最后写出来流或磁盘文件是一个合乎逻辑的方式来做到这一点。
或者使用内置的XSLT转换功能将XSLT工作表应用于现有的XML DOM对象或文件以将其转换为HTML。
哪个更好取决于您的确切要求。其次,开始时需要做更多的工作,但要更加灵活和可重用。
创建一个基本抽象类HTMLEntity。这将保存其中的文本和/或元素,样式等。添加一个方法toHtml(或使用toString)来生成HTML。添加一个方法来添加一个孩子。
abstract class HtmlEntity {
private List<HtmlEntity> children;
private String tag;
private boolean canHaveChildren; // for tags like img, hr, br ...
private boolean canSelfClose; // for tags like img, hr, br ...
// you get the idea, add a list of classes, an optional id, even a XPath string ...
public String toString() {
StringBuilder sb = new StringBuilder("<").append(tag)
// for each property, sb.append(key).append("=").append(value);
// for each child, sb.append(child.toString());
// if canSelfClose sb.append("/>"); else sb.append("</").append(tag).append(">");
}
// override this in subclasses, be more restrictive, i.e. for ULs you should have addChild(LiEntity child);
public boolean addChild(HtmlEntity child);
}
有几个方法可以解决这个: 1)使用Apache Velocity模板中产生的,而不是使用纯粹的代码
2担心HTML结构与数据文件合并HTML标记)使用现有的模板和使用JSOUP操作(一个HTML DOM操作库)
我认为用例如为电子邮件或甚至PDF生成生成HTML。
如果需要纯代,尝试寻找在https://code.google.com/p/gagawa/
它可能会帮助http://stackoverflow.com/questions/5936003/write-html-file-using-java –
@KamleshArya任何第三方插件:) –