Estoy intentando construir un motor de búsqueda simple usando HtmlAgilityPack y Xpath con C# (.NET 4). Quiero encontrar todos los nodos que contengan una palabra de búsqueda definida por el usuario, pero parece que no puedo obtener el XPath correcto. Por ejemplo:Uso de Xpath y HtmlAgilityPack para encontrar todos los elementos con texto inerte que contiene una palabra o palabras específicas
<HTML>
<BODY>
<H1>Mr T for president</H1>
<div>We believe the new president should be</div>
<div>the awsome Mr T</div>
<div>
<H2>Mr T replies:</H2>
<p>I pity the fool who doesn't vote</p>
<p>for Mr T</p>
</div>
</BODY>
</HTML>
Si la palabra de búsqueda especificada es "Sr. T" me gustaría que los nodos siguientes: <H1>
, el segundo <div>
, <H2>
y la segunda <p>
. He intentado numerosas variantes de doc.DocumentNode.SelectNodes("//text()[contains(., "+ searchword +")]");
pero siempre parezco terminar con cada nodo en todo el DOM.
Cualquier sugerencia para llevarme en la dirección correcta sería muy apreciada.
Su segunda expresión coincide exactamente con lo que el PO dice que intenté (excepto el '..') adicional, así que no estoy seguro de por qué cree que no funcionó. –
@lwburk: "No funcionó, porque selecciona * nodos de texto * y necesita sus padres. –
Correcto, entiendo eso, pero ciertamente no selecciona *" cada nodo en todo el DOM "* (como se dijo). –