2014-02-07 130 views
1

我想用Java代码创建HTML文档,如何在不依赖第三方库的情况下有效利用Java SE 1.7来实现该目标?创建HTML文档

目标是不必手动将html字符串附加在一起,并获得一些帮助保持html有效。

+0

它可能会帮助http://stackoverflow.com/questions/5936003/write-html-file-using-java –

+0

@KamleshArya任何第三方插件:) –

回答

3

HTML仅仅是XML,所以使用的DocumentBuilderFactory创建一个XML DOM文档,然后用你的HTML元素填充它,最后写出来流或磁盘文件是一个合乎逻辑的方式来做到这一点。
或者使用内置的XSLT转换功能将XSLT工作表应用于现有的XML DOM对象或文件以将其转换为HTML。
哪个更好取决于您的确切要求。其次,开始时需要做更多的工作,但要更加灵活和可重用。

0

创建一个基本抽象类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); 
} 
0

有几个方法可以解决这个: 1)使用Apache Velocity模板中产生的,而不是使用纯粹的代码

2担心HTML结构与数据文件合并HTML标记)使用现有的模板和使用JSOUP操作(一个HTML DOM操作库)

我认为用例如为电子邮件或甚至PDF生成生成HTML。

如果需要纯代,尝试寻找在https://code.google.com/p/gagawa/