obtener datos con HTMLagilitypack de un lapso

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

Pregunta

Quiero capturar algunos datos de un sitio web usando HtmlAgilityPack. Los datos se almacenan en un objeto con la propiedad class="addresscolor__" . Pero el problema es que hay más de una clase con este nombre. Y quiero saber si hay alguna forma de obtener estos datos de una clase específica con ese valor, usando "Comenzar con" o "Contenidos ..." o algo como esto.

Código HTML :

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

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

Yo uso este código:

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

La otra cosa es que esta clase contenía la etiqueta span y con estos códigos detecto todos los valores de la etiqueta <p> , pero solo quiero un número en la etiqueta span "Mobile".

Respuesta aceptada

Para encontrar este párrafo:

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

Para limitar a su nodo de texto (el número de teléfono):

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

Para eliminar el espacio en blanco:

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

Para hacer coincidir las clases de HTML, también considere que un nodo puede tener varias clases y cómo lidiar con eso .



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué