Programa Java para validar arquivo HTML

Java

13/02/2020

Prezados, boa tarde!
Alguma dica ou exemplo de código para me ajudar a resolver essa atividade?
Escreva um programa em Java que leia um ficheiro em HTML e determine se o seu conteúdo é válido ou se
contêm erros.
O HTML, ou HyperText Markup Language, é a linguagem em que as páginas Web são escritas. Numa página
pode existir texto misturado com tags ou marcas. As tags aparecem usualmente aos pares e entre <>.
Exemplo:
<P>Isto é um parágrafo <BOLD>com uma parte a negrito.</BOLD></P>
Contém duas tags <P> e <BOLD>. Para cada tag deve existir uma tag equivalente de fecho (neste caso </P>
e </BOLD>). As tags devem estar devidamente encadeadas, como no exemplo.
Deve produzir a listagem dos erros encontrados ou uma mensagem a dizer que o ficheiro é válido, no caso
contrário.
Exemplo:
<BEGIN> Estou dentro da tag BEGIN </BEGIN>
<START> Aqui vem mais um pedaço de texto. </START>
Esta tag está vazia <>
Aqui tudo bem <OKAY> <GOOD> aqui também.</GOOD> </OKAY>
Aqui há um erro <START> </STOP>
Aqui falta qualquer coisa: <OK></OK></NOTOK><Z>
Output:
Tag vazia <> na linha 4
Tags <START> e </STOP> não correspondem.
Tag </NOTOK> sem tag de início.
Tag <Z> sem fecho
João Medeiros

João Medeiros

Curtidas 0

Respostas

João Medeiros

João Medeiros

13/02/2020

Prezados, boa tarde!
Alguma dica ou exemplo de código para me ajudar a resolver essa atividade?
Escreva um programa em Java que leia um ficheiro em HTML e determine se o seu conteúdo é válido ou se
contêm erros.
O HTML, ou HyperText Markup Language, é a linguagem em que as páginas Web são escritas. Numa página
pode existir texto misturado com tags ou marcas. As tags aparecem usualmente aos pares e entre <>.
Exemplo:
<P>Isto é um parágrafo <BOLD>com uma parte a negrito.</BOLD></P>
Contém duas tags <P> e <BOLD>. Para cada tag deve existir uma tag equivalente de fecho (neste caso </P>
e </BOLD>). As tags devem estar devidamente encadeadas, como no exemplo.
Deve produzir a listagem dos erros encontrados ou uma mensagem a dizer que o ficheiro é válido, no caso
contrário.
Exemplo:
<BEGIN> Estou dentro da tag BEGIN </BEGIN>
<START> Aqui vem mais um pedaço de texto. </START>
Esta tag está vazia <>
Aqui tudo bem <OKAY> <GOOD> aqui também.</GOOD> </OKAY>
Aqui há um erro <START> </STOP>
Aqui falta qualquer coisa: <OK></OK></NOTOK><Z>
Output:
Tag vazia <> na linha 4
Tags <START> e </STOP> não correspondem.
Tag </NOTOK> sem tag de início.
Tag <Z> sem fecho

Iniciei o código conforme abaixo. No entanto, esse só lê as tags.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Tema8_2 {

public static void main(String[] args) throws Exception {
try{

BufferedReader br = new BufferedReader(new FileReader("c:/Java/Teste.html"));

while(br.ready()){
boolean isTag = true;
String linha = br.readLine();
String linhaImp = "";
int cont = 0;
for(cont = 0; cont < linha.length(); cont++){
char letra = linha.charAt(cont);

if(letra == '<'){
isTag = true;
} else if(!isTag){
linhaImp += letra;
}

if(letra == '>'){
isTag = false;
}
}
System.out.println(linhaImp);
}
br.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
GOSTEI 0
POSTAR