Ottieni il testo tra 2 tag html c #

Sto cercando di ottenere i dati tra l’html (span) fornito (in questo caso 31)

Ecco il codice originale (da ispezionare gli elementi in chrome)

31 

Ho una ricca casella di testo che contiene l’origine della pagina, qui è lo stesso codice ma nella riga 51 della casella di testo rich:

 
You have
17
Points
When people subscribe to you, you lose a point

Come potrei fare questo? Ho provato diversi metodi e nessuno di loro sembra funzionare per me.

Sto cercando di recuperare il valore in punti da questa pagina: http://www.subxcess.com/sub4sub.php Il numero cambia a seconda di chi ti assiste.

Potresti essere incredibilmente specifico al riguardo:

 var regex = new Regex(@"(.*?)"); var match = regex.Match(@"31"); var result = match.Groups[1].Value; 

Ti consigliamo di utilizzare HtmlAgilityPack per fare ciò, è piuttosto semplice:

 HtmlDocument doc = new HtmlDocument; doc.Load("filepath"); HtmlNode node = doc.DocumentNode.SelectSingleNode("//span"); //Here, you can also do something like (".//span[@id='point_total' class='tooltip' jQuery16207621750175125325='23' oldtitle='Note: If the number is black, your points are actually a little bit negative. Don't worry, this just means you need to start subbing again.']"); to select specific spans, etc... string value = node.InnerText; //this string will contain the value of span, ie ***value*** 

Regex, anche se un’opzione praticabile, è qualcosa che generalmente vorresti evitare se ansible per l’analisi di html (vedi qui )

In termini di sostenibilità, dovrai assicurarti di aver compreso il codice sorgente della pagina (ad esempio, aggiornarlo un paio di volte e verificare se il tuo intervallo di destinazione è annidato all’interno degli stessi genitori dopo ogni aggiornamento, assicurati che la pagina sia nella stessa formato generale, ecc., quindi naviga fino allo span usando il principio di cui sopra).

Ci sono molteplici possibilità.

  1. regex
  2. Lascia che l’HTML sia analizzato come XML e ottieni il valore tramite XPath
  3. Scorrere tra tutti gli elementi. Se ottieni un tag span, salta tutti i caratteri fino a trovare la chiusura ‘>’. Quindi il valore che ti serve è tutto prima della prossima apertura ‘< '

Guarda anche System.Windows.Forms.HtmlDocument