HtmlAgilityPack HasAttribute?

c# html-agility-pack

Frage

Alles was ich tun möchte ist

node.Attributes["class"].Value

Wenn der Knoten jedoch nicht das class hat, stürzt er ab. Also muss ich zuerst nach seiner Existenz suchen, oder? Wie mache ich das? Attributes ist kein dict (es ist eine Liste, die ein internes dict ?? enthält), und es gibt keine HasAttribute-Methode (nur ein HasAttributes, das anzeigt, ob es überhaupt ein Attribut hat). Was mache ich?

Akzeptierte Antwort

Versuche dies:

String val;
if(node.Attributes["class"] != null)
{
  val = node.Attributes["class"].Value;
}

Oder Sie können dies möglicherweise hinzufügen

public static class HtmlAgilityExtender
{
    public static String ValueOrDefault(this HtmlAttribute attr)
    {
        return (attr != null) ? attr.Value : String.Empty;
    }
}

Und dann benutze

node.Attributes["class"].ValueOrDefault();

Ich habe das nicht getestet, aber es sollte funktionieren.


Beliebte Antwort

Bitte versuchen Sie Folgendes:

String abc = String.Empty;     
      if (tag.Attributes.Contains(@"type"))
      {
          abc = tag.Attributes[@"type"].Value;
      }


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