Autore Topic: Prelevare un testo specifico da HTML  (Letto 584 volte)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Prelevare un testo specifico da HTML
« il: 09 Gennaio 2012, 19:53:01 CET »
0
Ciao a tutti,
Codice (XML): [Seleziona]
<li class="prima">
        <div class="seconda">
                <p>auto</p>
        </div>
</li>

<li class="terza">
        <div class="quarta">
                <p>bici</p>
        </div>
</li>

Questa è la mia pagina html.
Ora da qui vorrei prelevare il contenuto del "tag p" (cioè il testo "bici") figlio del "tag div" che a sua volta è figlio del tag "li" la cui classe è "terza".
Come è possibile farlo?

in pratica ho bisogno di rintracciare il contenuto del tag p, ma a partire dai suoi div o li contenitori.
prelevare un testo specifico(bici) che si trova nel tag p che a sua volta si trova in un div ed in una li identificabili dal nome della classe a cui appartengono.
Spero di essere stato chiaro  :-P

Grazie in anticipo
« Ultima modifica: 09 Gennaio 2012, 19:54:57 CET da MrKrabs »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Prelevare un testo specifico da HTML
« Risposta #1 il: 09 Gennaio 2012, 19:56:28 CET »
0
Per fare questo genere di cose jsoup credo sia il metodo più semplice:
jsoup Java HTML Parser, with best of DOM, CSS, and jquery

;)

Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Prelevare un testo specifico da HTML
« Risposta #2 il: 10 Gennaio 2012, 18:28:19 CET »
0
Ciao ricky e grazie per aver risposto.
Stavo utilizzando HTMLCleaner per riuscire a catturare i dati di cui ho bisogno.
Per ora sono riuscito a prelevare il valore dell'attributo class cioè "seconda" e "terza" e le parole "auto" e "bici".
Solo che il mio problema è che sono andato a prelevare entrambi gli elementi in modo specifico, cioè indicando quali tag prelevare (ho indicato il tag <li> e il tag <p>).
facendo cosi però prelevo tutti i dati, invece io voglio prelevare ad esempio sono il valore "terza" e la parola "bici" che diciamo "sono tra loro collegate perchè una figlia dell'altro" (lasciami passare quest'espressione :-)).
Hai qualche idea? di come posso prelevare i dati della seconda <li> e non di entrambe assieme?

Offline dr4gone

  • Utente junior
  • **
  • Post: 66
  • Respect: +1
    • Mostra profilo
Re:Prelevare un testo specifico da HTML
« Risposta #3 il: 15 Gennaio 2012, 09:36:13 CET »
0
IO HO FATTO UNA COSA SIMILE...
Con jsoup o anche quello che usi tu...  ottieni tutto il testo, non devi fare altro che  salvare tutto in un array e poi richiami il testo che ti serve dal vettore

Ad esempio ti formi un vettore di stringhe s con i (di tipo int) e con un ciclo for che va da i=0  al  i < tuoelemento.size().
Dato che il tuo vettore è formato da 4 elementi e vuoi ricavare gli ultimi 2, non ti resta altro da fare che prendere i valori s[2] ed s[3], ricordantoti che il vettore parte da 0.

Questo è un modo.. Ce ne saranno di più eleganti forse..
Ma questo funziona :)


Offline MrKrabs

  • Utente junior
  • **
  • Post: 94
  • Respect: +4
    • Mostra profilo
Re:Prelevare un testo specifico da HTML
« Risposta #4 il: 15 Gennaio 2012, 09:42:30 CET »
0
ciao dragone,
alla fine avevo già fatto proprio nella tua stessa maniera,  :-P
non ricevendo risposte qui mi sono arrangiato.
Però alla fine come dici tu non essendo proprio elegante questo modo di fare chissà se porterà problemi...

Offline dr4gone

  • Utente junior
  • **
  • Post: 66
  • Respect: +1
    • Mostra profilo
Re:Prelevare un testo specifico da HTML
« Risposta #5 il: 15 Gennaio 2012, 09:55:14 CET »
0
se la pagina html resterà sempre la stessa non vedo perchè ci dovrebbero essere dei problemi! ;)
Se funziona, non lo aggiustare!!  :D