167 messaggi dal 22 giugno 2008
Utilizzando la classe HttpWebRequest faccio una richiesta ad una pagina web. La risposta è ovviamente una stringa che contiene l'html della pagina.
Sarei interessato ad ottenere il contenuto di tutti gli elementi <p> (ad esempio) contenuti all'interno della risposta (che ricordo essere solo una stringa).
Esiste un modo furbo per leggere questa stringa di risposta e magari ottenere in un sol colpo tutti i <p> (ed il loro contenuto) o mi devo fare un iterazione carattere per carattere??
42 messaggi dal 13 settembre 2007
Ciao potersti usare le regular expressions.
Per prima cosa importi il namespace corretto:
using System.Text.RegularExpressions;

Poi fai una cosa del genere:
string html = "<p>pluto</p><p>paperino</p>";//il contenuto della pagina da parsare
string regEx = @"<p>(?<CONTENT_VALUE>.*?)</p>";//la regular expression

MatchCollection contents = Regex.Matches(html, regEx, RegexOptions.Singleline | RegexOptions.IgnoreCase);
            foreach (Match content in contents)
                Console.WriteLine(content.Groups["CONTENT_VALUE"].Value);

Ti viene stampato "pluto" e "paperino".
Riassumendo: l'espressione regolare "<p>(?<CONTENT_VALUE>.*?)</p>" va a prendere tutto il testo contenuto tra i tag <p> e </p>. Per fare in modo che i tag stessi non siano compresi nella selezione, il contenuto viene inseriro in un GRUPPO con nome "CONTENT_VALUE".
Il codice
Regex.Matches(html, regEx, RegexOptions.Singleline | RegexOptions.IgnoreCase);
significa "Prendimi tutti i tag <p></p> e il loro contenuto ignorando le maiuscole e minuscole e considerando il testo come se fosse su una sola riga", quest'ultima opzione ti evita problemi in casi di ritorno a capo.
Una volta fatto ciò si cicla su tutti i match e per ognuno di questi si legge il contenuto del gruppo "CONTENT_VALUE".
Per varie info vai qui:
http://www.regular-expressions.info/

Fammi sapere se ti è stato utile.

Ciao
Modificato da roland79 il 11 gennaio 2012 08.41 -
167 messaggi dal 22 giugno 2008
Ottimo ed abbondante... preciso e funzionale... grazie mille!!!!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC