Comment obtenir toutes les balises HTML contenant une chaîne spécifique dans leurs valeurs d'attributs à l'aide de Html Agility Pack?

c# html html-agility-pack

Question

Je travaille sur l'obtention de toutes les balises HTML contenant une chaîne spécifique dans leurs valeurs d'attribut dans le code ci-dessous.

<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">

Je veux que toutes les balises contenant "en-us" dans leur attribut signifient que ma sortie doit renvoyer toutes les balises HTML ci-dessus. Quelqu'un pourrait-il m'aider s'il vous plaît, comment l'obtenir à l'aide de HTML Agility Pack?

Réponse acceptée

Vous pouvez utiliser le XPath suivant //*[@*[contains(., 'en-us')]] qui sélectionne les éléments ayant un attribut contenant une chaîne en-us :

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

Ou façon LINQ:

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi