HtmlAgilityPack HasAttribute?

c# html-agility-pack

문제

내가하고 싶은 것은

node.Attributes["class"].Value

그러나 노드에 class 속성이 없으면 충돌합니다. 그래서, 먼저 그 존재를 확인해야합니다, 그렇죠? 어떻게해야합니까? Attributes 는 dict (내부 dict이 들어있는 목록)가 아니며 HasAttribute 메소드가 없습니다 (HasAttributes는 속성이 있는지 여부를 나타냅니다). 나는 무엇을해야합니까?

수락 된 답변

이 시도:

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

또는이 항목을 추가 할 수 있습니다.

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

그런 다음

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

나는 그것을 시험하지 않았지만 작동해야한다.


인기 답변

이것을 시도하십시오 :

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


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.