![]() |
Pages (12): « First ... « 5 6 7 8 [9] 10 11 12 » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- nuovo progetto : consigli (http://www.dsy.it/forum/showthread.php?threadid=33437)
Intendi una volta estratto il contenuto della pagina html?
Beh potresti usare un charAt() per scorrere l'intera stringa con un for; (1) se il carattere alla posizione i-esima è uguale a '<' , utilizza una stringa come buffer temporaneo in cui salvi tutti i caratteri successivi.
(2) Quando invece incontri '>' inserisci la stringa buffer appena composta in un vettore o la struttura dati da te scelta (il contenitore di tutti i tag), azzerra il buffer, e riprendi dal punto (1).
Altrimenti potresti usare le regexp.Il risultato è lo stesso!
Infatti usado il metodo split di String e una regex si ottiene la stessa cosa, ed é MOLTO + veloce da fare. Infatti le parti "splittate" vengono messe in automatico in un array di string. Successivamente basta richiamarli con un ciclo for e fargli fare tutti i passaggi del validate.
L'importate é saper inserire una regex adeguata.....cosa non troppo semplice, ma in rete si trova di tutto.
__________________
Bell'idea iscriversi all'università a 30 anni suonati....
Si split è la soluzione migliore!
Una domanda : ma conviene controllare PRIMA che il documento sia bilanciato e successivamente in un nuovo ciclo istanziare i vari oggetti dei relativi tag con getSpec(), oppure fare tutto in un unico passaggio?Sto facendo confusione.. :S
Io ho fatto tutto tramite validate. In pratica io ho estrapolato tutti i tag e messi nell'array (con split), poi con for prendo tutte le posizioni dell'array e una per una le analizzo: faccio il getSpec, faccio l'updateStat, e metto il tag nella pila. Poi continuo (sempre con il ciclo for di prima) e se il nuovo tag é di chiusura tiro fuori dalla pila il tag precedente e lo confronto con questo di chiusura. Se hanno lo stesso nome (ho creato un metodo apposta per velocizzare il tutto) li scarto, altrimenti rimetto nella pila il precedente tag e aggiungo in cima alla pila il nuovo tag, ecc ecc. Ovviamente con tutte le stramaledette eccezioni....che sono la cosa + incasinata da gestire correttamente..... E' piuttosto complicato da spiegare ma spero di esserci riuscito :-)
__________________
Bell'idea iscriversi all'università a 30 anni suonati....
Raga ho un problema...quando voi richiamate il metodo pop() della classe TagStack richiamate un Tag della lista giusto?!!se io faccio ad esempio l'istruzione Tag c=x.pop()_ la variabile x è il mio TagStack_ metto il primo Tag della lista in c....ma non potrei in teoria xkè Tag è astratta e nn potrei creare 1elemento di una classe astratta...voi come avete fatto in HTMLPage a richiamare il primo Tag della lista con il metodo pop()????grazie mille
siete dei grandi
oh madonna incoronita...
scusami non voglio essere scortese...ma è + il tempo che passi a fare domande "banali" che quello che ci metteresti a leggerti 100 pagine sul come si implementano le classi....in un paio d'ore capiresti un fracco di cose, te lo giuro..non è per fare la ramanzina, sn cose che all'orale son chieste al 100%.....però sn buono..risposta:
Tag è si astratta, ma nulla ti vieta di fare assegnazione di sottotipo verso supertipo, quindi come nel caso del getsSpecialized facevi Tag t = getSpecialized(stringa), puoi benissimo fare Tag t = lista.pop()
Ciao 
Originally posted by Black D.
Io ho fatto tutto tramite validate. In pratica io ho estrapolato tutti i tag e messi nell'array (con split), poi con for prendo tutte le posizioni dell'array e una per una le analizzo: faccio il getSpec, faccio l'updateStat, e metto il tag nella pila. Poi continuo (sempre con il ciclo for di prima) e se il nuovo tag é di chiusura tiro fuori dalla pila il tag precedente e lo confronto con questo di chiusura. Se hanno lo stesso nome (ho creato un metodo apposta per velocizzare il tutto) li scarto, altrimenti rimetto nella pila il precedente tag e aggiungo in cima alla pila il nuovo tag, ecc ecc. Ovviamente con tutte le stramaledette eccezioni....che sono la cosa + incasinata da gestire correttamente..... E' piuttosto complicato da spiegare ma spero di esserci riuscito :-)
non c'è nessuno che mi può aiutare...
non mi è ben chiaro come si fa ad inviare il file...cioè spiego.io metto il percorso del file cm argomento dell'oggetto HTMLPage che creo nel main..ma ovviamente il percorso cambierà sul computer del prof..quindi come avete fatto voi????cioè si può mettere solo il nome del file che poi verà messo nella cartella che invieremo e se si come?
grazie
ma il main se lo fa il prof....no?
@ Lukkei,
sinceramente visto che nel getStat di HTMLPage se il documento non è bilanciato NON dice di dover restituire i contatori dei tag....secondo me basta conteggiare solo i tag di apertura (o solo quelli di chiusura) e i tag Aprichiudi.
Infatti per essere bilanciato una pagina html deve avere sia un tag di apertura che uno di chiusura e visto che i contatori vengon fuori solo quando il documento è bilanciato basta contare solo quelli di apertura e quelli aprichiudi.
Per l'update non credo che cambi molto se fai l'aggiornamento prima di usare la pila o durante, l'importante è che si aggiorni correttamente il contatore del tag definito.
__________________
Bell'idea iscriversi all'università a 30 anni suonati....
Volevo chiedere una cosa a chi ha usato le regex:
come l'avete fatta?
In rete girano parecchie regex, alcune ottime e altre meno..
ps. trovato soluzione migliore con un Matcher, meglio di split!
__________________
Bell'idea iscriversi all'università a 30 anni suonati....
ragazzi ma si può usare un parser XML standard come DOM o SAX per analizzare
ogni stringa rappresentatnte un tag html...oppure Sun Java API for XML Parsing (JAXP)?????
__________________
You are what you know...
Ciao ragazzi ho bisogno di una mano!!!voi come avete fatto a cancellare nella classe TagStack il tag preso con il metodo pop() per verificare se è uguale a quello di chiusura???
mi creano dei problemi ad esempio se ci sono alla fine 3 tag di chiusura (es. </p></body></html> ) come faccio a cancellare il tag preso così posso usare quello ke sta prima?grassie![]()
credo che facendo pop(), nel momento in cui il tag viene restituito, viene tolto dalla pila!
| All times are GMT. The time now is 12:36. | Pages (12): « First ... « 5 6 7 8 [9] 10 11 12 » Show all 178 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.