Sto cercando di analizzare il seguente codice HTML. Ho bisogno di ottenere il testo interno di tutti i link sotto un tag h4 con il valore "Titolo".
<h4>Title</h4>
<ul>
<li>
<a>One</a>
</li>
<li>
<a>Two</a>
</li>
<li>
<a>Three</a>
</li>
</ul>
Posso ottenere l'elemento h4 ok usando il seguente codice:
var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]");
Il problema arriva con il tentativo di ottenere i nodi. Ho provato il seguente codice ma nessuno funziona:
var urls = member.SelectNodes(".//a");
foreach (var url in urls)
{
Console.WriteLine(url.InnerText);
}
Da quello che riesco a raccogliere, penso che non funzioni perché l'xpath che stai usando si aspetta che i nodi siano figli del tuo nodo h4, non l'ho provato e potrebbe mancare nell'interpretazione dei tuoi requisiti ma ...
var links = document.DocumentNode.SelectNodes("//h4[contains(text(),'Title')]/following-sibling::*[1]//a");
Ciò otterrebbe tutti i nodi che si trovano nel primo fratello del nodo h4. Quindi nel tuo esempio HTML, dovrebbe ottenere tutti i nodi all'interno del nodo ul
Spero che questo ti aiuti