Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [JAVA] HTML parser

  1. #1

    [JAVA] HTML parser

    Buongiorno,

    ho visto in rete milioni di parser html.

    In base alle mie esigenze immagino che alcuni siano più performanti di altri.

    Semplicemente, ricevo codice html in risposta a una GET in uno stream, in questo modo:



    codice:
    URL url = new URL(myUrl);
    		URLConnection conn = url.openConnection();
    		InputStreamReader isr = new InputStreamReader(conn.getInputStream(), "UTF-8");
    Ora, dall'oggetto InputStreamReader, posso ottenere quel che voglio (String, Reader ec ecc).

    Nel mio caso, all'interno dell'HTML, ho bisogno del valore di un nodo X il cui attributo Y abbia valore Z.

    Qualcuno può suggerirmi un tutorial o o del codice d'esempio per parsare questo benedetto HTML?

  2. #2
    Se devi lavorare in maniera minimale solo su quel tag e non devi fare altre elaborazioni sull'html ricevuto puoi usare direttamente con una regular expression, come ad esempio è esemplificato qui
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    Perfetto, proprio quello di cui avevo bisogno.

    Ora però ho un piccolo problema.

    Nel pattern

    codice:
    String expr1 = "<div\\s+class=\"news\"[^>]*>"
    la stringa 'news' è fissa.

    Se invece di news soltanto volessi matchare sia 'news' che 'ciccio', come faccio?

    Ho provato con

    codice:
    <div\\s+class=\"news|ciccio\"[^>]*>
    ma non va.

    Un aiuto?

  4. #4
    A chi servisse in futuro, l'or nel mio caso si fa tra parentesi quadre, von i valori d'interesse separati da virgole.

    "<div\\s+class=\"+[news,ciccio,pasticcio]+\"[^>]*>"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.