Esame del 30/5/2012 Tecnologie Internet e Web (parte di Java) Realizzare un programma Java che analizza dei file HTML. I file HTML che consideriamo possono avere solo i seguenti tag: <html>, <body>, <p> e le rispettive chiusure. Dentro a un <p> non ci possono essere altri tag. Ad esempio il file HTML seguente è un input possibile per il programma. <html> <body> <p>Java</p> <p>che bello </p> Programmare in Java </body> </html> Il programma deve: 1. controllare che nel file non ci siano tag diversi da quelli indicati 2. controllare che il file sia ben formattato cioè che: a. i tag <html>, <body> e <p> abbiano le rispettive chiusure innestate correttamente. Ad esempio il programma deve segnalare un errore se un <p> non è chiuso o in caso di errori di innesto: <html><body></html></body> b. <html> contiene <body>. c. <body> contiene dei tag <p> o del testo d. <p> contiene testo 3. scrivere il contenuto del documento senza tag (es. “Java che bello programmare in Java”) 4. scrivere la parola che compare più spesso nel documento (es. Java) 5. (difficile) creare degli oggetti di classe Tag o Text per rappresentare il documento. Gli elementi di classe Tag devono poter contenere una lista di altri oggetti Tag o Text per rappresentare come i tag sono innestati. Ad esempio: Tag html = new Tag(“html”); Tag body = new Tag(“body”); Tag p1 = new Tag(“p”); Text t1 = new Text(“Java”) Tag p2 = new Tag(“p”); Text t2 = new Text(“che bello”) Text t3 = new Text(“Programmare in Java”); html.add(body); // body è dentro html body.add(p1); // c’è un paragrafo dentro a body body.add(p2); // c’è un altro paragrafo dentro a body body.aff(t3); // c’è un elemento di testo dentro a body p1.add(t1); // dentro al primo paragrafo c’è un elemento di testo p2.add(t2); // dentro al secondo paragrafo c’è un elemento di testo Ovviamente il programma deve funzionare con ogni file HTML in input