Come ottenere tutti i tag HTML che contengono una stringa specifica nei loro valori di attributo utilizzando Html Agility Pack?

c# html html-agility-pack

Domanda

Sto lavorando per ottenere tutti i tag HTML che contengono una stringa specifica nei loro valori di attributo nel codice seguente

<meta name="DCSext.oo_market" content="en-us">
<a href="http://office.microsoft.com/en-us/support/" title="Find help for Word">
<a href="http://windows.microsoft.com/en-us/windows-live/microsoft-account-help#microsoft-account=tab1" title="Microsoft Account">

Voglio che tutti i tag che contengono "en-us" nel loro attributo significano che il mio output dovrebbe restituire tutti i tag html sopra indicati. Qualcuno potrebbe per favore aiutarmi come farlo usando HTML Agility Pack?

Risposta accettata

È possibile utilizzare il seguente XPath //*[@*[contains(., 'en-us')]] che seleziona tutti gli elementi che hanno qualsiasi attributo che contiene string en-us :

HtmlDocument doc = new HtmlDocument();
doc.Load(path_to_html_file);    
var nodes = doc.DocumentNode.SelectNodes("//*[@*[contains(., 'en-us')]]");

O via LINQ:

HtmlDocument doc = new HtmlDocument();
doc.Load(path_to_html_file);    
var nodes = doc.DocumentNode.SelectNodes("//*[@*[contains(., 'en-us')]]");



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é