안녕하세요 여러분, 주어진 HTML 문서가 잘 형성되었는지 확인해야합니다.
Java 핵심 API 클래스 만 사용하여 간단한 구현이 필요합니다. 즉 JTIDY 또는 제 3 자와 같은 제 3 자 프로그램이 필요하지 않습니다.HTML Well-formedness 파서
사실 실제로 필요한 것은 태그 목록을 검색하는 알고리즘입니다. 열린 태그를 찾고 다음 태그가 해당 닫는 태그가 아니면 다음 태그로 닫는 태그를 가져야하는 다른 열린 태그 여야하며 그렇지 않은 경우 열린 태그 여야합니다. 그 다음에 해당 닫는 태그, 그리고 목록에서 다른 태그가 차례로 나오는 순서로 이전에 열린 태그의 닫는 태그가 역순으로 나타납니다. 리스트가이 순서에 준거하고있는 경우는 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;
}
타사 라이브러리를 사용하는 것이 좋습니다. 이것이 학문적 인 운동이 아니라면 시간 가치가 없습니다. 가장자리 사건? '
', 자기 닫는 태그, 다른 doctypes ... –
가능한 중복 [Java에서 HTML의 유효성을 검사하는 방법?] (http://stackoverflow.com/questions/4392505/how-to-validate-html-from- java) –
나는 당신이 이미 숙제에 어떤 노력을 기울인 것을 알고 있습니까? 잘 했어! 그러나 우리는 "da codez"를 보내지 않으려 고합니다. 알고리즘을 완료하는 것보다 우리가 도울 수있는 구체적인 질문이 있습니까? –