Java 创建HTML文档
我想用Java代码创建一个HTML文档,在不依赖第三方LIB的情况下,如何使用JavaSE1.7有效地创建HTML文档Java 创建HTML文档,java,Java,我想用Java代码创建一个HTML文档,在不依赖第三方LIB的情况下,如何使用JavaSE1.7有效地创建HTML文档 目标是不必手动将html字符串附加在一起,并在保持html有效方面获得一些帮助 创建一个基础抽象类HTMLEntity。这将保存其中的文本和/或元素、样式等。添加一个方法toHtml(或使用toString)来生成HTML。添加方法以添加子对象 abstract class HtmlEntity { private List<HtmlEntity> child
目标是不必手动将html字符串附加在一起,并在保持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);
}
抽象类Htmlenty{
私人名单儿童;
私有字符串标签;
私有布尔值canHaveChildren;//用于标记,如img、hr、br。。。
私有布尔值canSelfClose;//用于标记,如img、hr、br。。。
//你明白了,添加一个类列表,一个可选id,甚至一个XPath字符串。。。
公共字符串toString(){
StringBuilder sb=新的StringBuilder(“”);否则sb追加(“”);
}
//在子类中重写此项,限制性更强,即对于ULs,您应该有addChild(LiEntity child);
公共布尔addChild(HtmlEntity-child);
}
html只是XML,因此使用DocumentBuilderFactory创建XML DOM文档,然后用html元素填充它,最后将其写入流或磁盘文件是一种合乎逻辑的方法。或者使用内置的XSLT转换功能将XSLT表应用于现有的XML DOM对象或文件,以将其转换为HTML。
哪一个更好取决于您的具体要求。第二,初始设置需要做更多的工作,但灵活性和可重用性更高。有两种方法可以实现这一点: 1) 使用ApacheVelocity模板将文件中的HTML标记与生成的数据合并,而不用担心使用纯代码构建HTML 2) 使用现有模板并使用JSOUP(一个HTML DOM操纵库)进行操纵
我考虑用例,例如为电子邮件生成HTML,甚至PDF生成。
如果需要纯生成,请尝试查看它可能有助于@KamleshArya无第三方插件:)