paquete de agilidad html - Seleccione un nodo específico

c# html-agility-pack

Pregunta

Necesito seleccionar el nodo que tiene un valor específico:

<td class='formlabel'>Name:</td>

Así que tengo algo como esto:

HtmlNode selectedNote = html.DocumentNode.SelectSingleNode("//td[@class='formlabel'][starts-with(., 'Name:')]");

Esto funciona. Pero el problema es que esta es una selección con inicios, con, por ejemplo, si tengo un código como este:

<td class='formlabel'>Name: some text</td>

También seleccionará el nodo. Necesito algo que seleccione nodo solo si esto existe

<td class='formlabel'>Name:</td>

Así que seleccionará el nodo que solo tiene texto interior es igual a "Nombre:"

Hmm ... ¿Es esto posible? Muchas gracias.

Respuesta aceptada

Creo que quieres:

HtmlNode selectedNote = html.DocumentNode.SelectSingleNode("//td[@class='formlabel'][text()='Name:']");

O

HtmlNode selectedNote = html.DocumentNode.SelectSingleNode("//td[@class='formlabel'][.='Name:']");


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é