2017-06-21 2 views
0

Ich habe ein HTML-Dokument, das verschiedene Tabellen enthält.HtmlAgilityPack SelectNodes nur dort, wo ein Attribut fehlt oder nicht definiert ist

Einfache Beispiele sind 2 Typen:

  1. <table>
  2. <table class="footer" id="some-x">

alle Knoten zu wählen, wo die Tabelle mit dem Namen ein Attribut hat id I

DocumentNode.SelectNodes("//table[@id]")

verwenden können

Was ich binde aus dem entgegengesetzten Figur, wie ich Knoten wählen zu tun, wo die Tabellen tun NICHT hat ein Attribut id (oder jede Klasse, das heißt nur nackte Tags) genannt (Beispiel 1)

Antwort

1

Sie können not() verwenden Tabellen auswählen, die keine id Attribute hat:

DocumentNode.SelectNodes("//table[not(@id)]") 

... oder Tabellen auszuwählen ganz ohne Attribut :

DocumentNode.SelectNodes("//table[not(@*)]") 
1

So etwas wie das könnte hier funktionieren. Lassen Sie uns wissen, wenn es nicht

doc.DocumentNode.Descendants("table").Where(t => !t.HasAttributes) 
tut
Verwandte Themen