有人能推荐那些能做与这些库相反的事情的库吗?
HtmlCleaner、TagSoup、HtmlParser、HtmlUnit、jSoup、jTidy、nekoHtml、WebHarvest或Jericho。
我需要构建html页面,从String内容构建DOM模型。
编辑:我需要它来测试。我有各种类型的输入/字符串,它们可能在不同地方的html页面中。。。所以我需要动态地构建它。。。然后,我根据各种必须满足或不满足的标准来处理html页面。
我会告诉你为什么我问这个问题,考虑这个工作的htmlCleaner:
List<String> paragraphs = getParagraphs(entity.getFile());
List<TagNode> pNodes = new ArrayList<TagNode>();
TagNode html = cleaner.clean("<html/>");
for(String paragraph : paragraphs) {
TagNode p = new TagNode("p");
pNodes.add(p);
// CANNOT setText() ?
}
html.addChildren(pNodes);
问题是TagNode
有getText()
方法,但没有setText()
方法。。。。
请添加更多关于这个问题有多模糊的评论。。。你能做的最好的事情
Jsoup,Jsoup!我用过所有这些,而且它是我的最爱。您可以使用它来构建文档,此外,它还带来了Jquery风格遍历的许多魔力,以及我在Java库中见过的迄今为止最好的HTML文档解析。我对它很满意,所以我不介意无耻地宣传它
最困难的任务是…做出选择。
一般来说,这些库提供了一个网页骨架,其中有一些"洞"可以填充变量。这是最简单的方法,通常可以很好地使用工具
如果您真的想从Dom构建,您可以使用XML库并生成XHTML。
如果您对HtmlCleaner特别感兴趣,它实际上是构建html文档的一个非常方便的选择。
但您必须知道,如果您想将内容设置为TagNode,则需要附加一个子ContentNode元素:-)
List<String> paragraphs = getParagraphs(entity.getFile());
List<TagNode> pNodes = new ArrayList<TagNode>();
TagNode html = new TagNode("html");
for(String paragraph : paragraphs) {
TagNode p = new TagNode("p");
p.addChild(new ContentNode(paragraph));
pNodes.add(p);
}
html.addChildren(pNodes);
Jakarta元素构造集(ECS)-一个用于为各种标记语言生成元素的Java API,它直接支持HTML 4.0和XML。现在退休了,但有些人真的很喜欢它。