Heyy球员,我需要确定给定的HTML文档是否格式正确。
我只需要一个简单的实现,只使用Java核心API类,即没有像JTIDY之类的第三方东西。HTML格式良好解析器
实际上,确切需要的是扫描标签列表的算法。如果它找到一个开放的标签,并且下一个标签不是其对应的关闭标签,那么它应该是另一个开放标签,而它的下一个标签应该有它的关闭标签,如果不是,它应该是另一个开放标签,然后其下一个对应的关闭标记,以及相反顺序的先前打开标记的关闭标记在列表中一个接一个地出现。如果列表符合此顺序,则返回true或否则为false。我已经编写了将标签转换为关闭标签的方法。
这里是我已经开始工作的骨架代码。它不太整洁,但它应该给你们一个我想要做的事情的基本概念。
public boolean validateHtml(){
ArrayList tags = fetchTags();
//fetchTags returns this [,
, , , , ,,
, , ]//I create another ArrayList to store tags that I haven't found its corresponding close tag yet
ArrayList unclosedTags = new ArrayList();
String temp;
for (int i = 0; i < tags.size(); i++) {
temp = tags.get(i);
if(!tags.get(i+1).equals(TagOperations.convertToCloseTag(tags.get(i)))){
unclosedTags.add(tags.get(i));
if(){
}
}else{
return true;//well formed html
}
}
return true;
}
+4
我强烈建议为此使用第三方库。除非这是一项学术活动,否则这是不值得的。边缘情况? '
',自闭标签,不同的文档类型... –
2011-03-01 20:17:48
+1
[How to validate HTML from Java?](http://stackoverflow.com/questions/4392505/how-to-validate-html-from- java) –
2011-03-01 20:18:37
+2
我发现你已经付出了一些努力(作业)?干得好!但是,我们尽量不要“发送da codez”。有没有我们可以帮助你的具体问题,而不仅仅是完成你的算法? –
2011-03-01 20:20:16