ottenere un dato con HTMLagilitypack da un intervallo

asp.net c# html html-agility-pack xpath

Domanda

Voglio prendere alcuni dati da un sito web usando HtmlAgilityPack. I dati sono memorizzati in un oggetto con la proprietà class="addresscolor__" . Ma il problema è che c'è più di una classe con questo nome. E voglio sapere c'è un modo per ottenere questi dati da una classe specifica con quel valore, usando "Inizia con" o "Contiene .." o qualcosa del genere?

Codice HTML:

<p class="addresscolor__">
    <span>Phone:</span>
    33875362 ، 22356341
    <br />
</p>

<p class="addresscolor__">
    <span>mobile:</span>
    09125231827
    <br />
</p>

Io uso questo codice:

HtmlNodeCollection nodes2 = doc.DocumentNode.SelectNodes("//p[@class='addresscolor__']");

L'altra cosa è che questa classe conteneva tag span e con questi codici catturo tutti i valori di tag <p> , ma voglio un numero solo nel tag span "Mobile".

Risposta accettata

Per trovare questo paragrafo:

//p[@class='addresscolor__' and contains(span, 'mobile:')]

Per limitare il proprio nodo di testo (il numero di telefono):

//p[@class='addresscolor__' and contains(span, 'mobile:')]/text()

Per ulteriore spazio vuoto:

normalize-space(//p[@class='addresscolor__' and contains(span, 'mobile:')]/text())

Per la corrispondenza delle classi HTML, considera anche che un nodo può avere più classi e come gestirlo .



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché