Heyy球員,我需要確定給定的HTML文檔是否格式正確。
我只需要一個簡單的實現,只使用Java核心API類,即沒有像JTIDY之類的第三方東西。HTML格式良好解析器
實際上,確切需要的是掃描標籤列表的算法。如果它找到一個開放的標籤,並且下一個標籤不是其對應的關閉標籤,那麼它應該是另一個開放標籤,而它的下一個標籤應該有它的關閉標籤,如果不是,它應該是另一個開放標籤,然後其下一個對應的關閉標記,以及相反順序的先前打開標記的關閉標記在列表中一個接一個地出現。如果列表符合此順序,則返回true或否則爲false。我已經編寫了將標籤轉換爲關閉標籤的方法。
這裏是我已經開始工作的骨架代碼。它不太整潔,但它應該給你們一個我想要做的事情的基本概念。
public boolean validateHtml(){
ArrayList<String> tags = fetchTags();
//fetchTags returns this [<html>, <head>, <title>, </title>, </head>, <body>, <h1>, </h1>, </body>, </html>]
//I create another ArrayList to store tags that I haven't found its corresponding close tag yet
ArrayList<String> unclosedTags = new ArrayList<String>();
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;
}
我強烈建議爲此使用第三方庫。除非這是一項學術活動,否則這是不值得的。邊緣情況? '
',自閉標籤,不同的文檔類型... – 2011-03-01 20:17:48
[How to validate HTML from Java?](http://stackoverflow.com/questions/4392505/how-to-validate-html-from- java) – 2011-03-01 20:18:37
我發現你已經付出了一些努力(作業)?幹得好!但是,我們儘量不要「發送da codez」。有沒有我們可以幫助你的具體問題,而不僅僅是完成你的算法? – 2011-03-01 20:20:16