View Full Version : [JAVA] Semplice parser di un file html
ciao a tutti!
Mi serviva un aiuto..devo realizzare un semplice parser html. le pagine html sono del tipo
<html>
<head> </head>
<body>
<br> Nome1
<br> Nome2
etc.
</body>
</html>
a me serviva fare un parser in modo tale da restituire Nome1 , Nome2 etc.
qualcuno ha qualche idea?
zulutown
27-07-2009, 14:29
ciao a tutti!
Mi serviva un aiuto..devo realizzare un semplice parser html. le pagine html sono del tipo
<html>
<head> </head>
<body>
<br> Nome1
<br> Nome2
etc.
</body>
</html>
a me serviva fare un parser in modo tale da restituire Nome1 , Nome2 etc.
qualcuno ha qualche idea?
Se sei certo che attorno ai dati che ti servono hai tag ben identificabili.. puoi andare di espressioni regolari (se le sai usare) oppure prova a far le cose semplici usando banali funzioni su stringhe.
si..ho sempre il tag <br> , provo a vedere come funzionano in java le espressioni regolari ( so cosa sono ).
Grazie :)
zulutown
27-07-2009, 14:39
si..ho sempre il tag <br> , provo a vedere come funzionano in java le espressioni regolari ( so cosa sono ).
Grazie :)
occhio al classico problema che devi escapare due volte il backslash :D
^TiGeRShArK^
27-07-2009, 18:20
se le pagine sono xhtml puoi anche usare uno degli n parser xml a disposizione, come jdom ad esempio....
zulutown
27-07-2009, 19:47
se le pagine sono xhtml puoi anche usare uno degli n parser xml a disposizione, come jdom ad esempio....
sì.. ma è difficile trovare pagine che rispettano perfettamente apertura/chiusura dei tag ecc :D
ciao, è una semplice pagina html , rispetta quello scheletro perchè sono io a generarla :D
ho risolto cosi
public static String[] parser(String pHtml) {
Pattern p = Pattern.compile("<body>+.*|\\t* +</body>");
Matcher m = p.matcher(pHtml);
String line="";
String app="";
while (m.find()) {
app = m.group();
line+=app;
}
String[] pageSplit = line.split("<br>");
return pageSplit;
}
a funzionare funziona :D anche se si può fare di meglio penso(sicuramente)...nel vettore pageSplit ho i dati che mi interessano..anche se la prima e l ultima stringa sono rispettivamente <body> e </body><html> Non considerandole va bene il risultato. Se avete proposte migliori sono ben accette :)
Grazie.
:.Blizzard.:
28-07-2009, 09:22
ciao a tutti!
Mi serviva un aiuto..devo realizzare un semplice parser html. le pagine html sono del tipo
<html>
<head> </head>
<body>
<br> Nome1
<br> Nome2
etc.
</body>
</html>
a me serviva fare un parser in modo tale da restituire Nome1 , Nome2 etc.
qualcuno ha qualche idea?
Hai provato con la classe String Tokenizer? A me è tornata molto utile quando ho fatto un programma per disegnare funzioni.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/StringTokenizer.html
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.