Wie erhalten Sie alle HTML-Tags, die eine bestimmte Zeichenfolge enthalten, in ihren Attributwerten mithilfe von Html Agility Pack?

c# html html-agility-pack

Frage

Ich arbeite daran, alle HTML-Tags, die eine bestimmte Zeichenfolge enthalten, in ihre Attributwerte im folgenden Code zu übertragen

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

Ich möchte, dass alle Tags, die "en-us" in ihrem Attribut enthalten, bedeutet, dass meine Ausgabe alle obigen HTML-Tags zurückgeben soll. Könnte mir bitte jemand helfen, wie ich es mit HTML Agility Pack bekomme?

Akzeptierte Antwort

Sie können folgenden XPath verwenden: //*[@*[contains(., 'en-us')]] der alle Elemente auswählt, die ein Attribut haben, das den String en-us :

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

Oder LINQ-Weg:

var nodes = doc.DocumentNode.Descendants()
               .Where(n => n.Attributes.Any(a => a.Value.Contains("en-us")));


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum