Programa Java para validar arquivo HTML

13/02/2020

0

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

Responder

Posts

15/02/2020

João Medeiros

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();
}
}
}
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar