2009-03-03 4 views
0

일치하는 ID가있는 태그를 찾기 위해 HTML 파일을 찾고 편집하는 프로그램이 있습니다.HtmlAgility HtmlDocument에서 일치하는 원시 HTML의 노드 찾기

내가

이 일을 html로 민첩성을 사용하는 좋은 방법은 무엇입니까 (대소 문자와 공백을 무시) innerHTML을 일치 한 태그를 발견하도록 확장하고 싶은

은? 나는 프로그램의 나머지 부분이 그것을 사용하고 있기 때문에 Html Agility를 사용하여 그것을하고 싶다.

감사합니다.

+0

안녕하세요, 나는 HtmlAgilityPack 태그가 있다는 것을 알았습니다. 어떤 이유로이 태그에 태그를 지정할 수 없지만이 질문에 태그가 추가 된 경우 다른 사용자에게 도움이 될 수 있습니다. - 건배, 스캇. –

답변

1

거친 여기에 촬영을하지만,이 같은 것을 할 수 있어야는 :

  HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("YOUR_TAG_SELECTOR"); 

      if (nodes != null) 
      { 
       foreach (HtmlNode node in nodes) 
       { 
        if (node.InnerHtml.ToLower().Trim() == "YOUR_MATCH") 
        { 
         //success routine 
         break; 
        } 
       } 
      } 
+0

이것이 node.InnerHtml이 아니라 node.InnerText가되어야한다고 생각합니다. –

+0

아, 네, 사과드립니다. 원래 질문에서 일치하는 텍스트를 읽었습니다. 수정 됨. – Pat

1

우리는이 사용하는 정규 표현식을했습니다. 다음과 같이 작동합니다.

private static List<HtmlNode> GetMatchingNodes(string xPath, string pattern, HtmlDocument htmlDocument) 
{ 
    List<HtmlNode> matchingNodes = new List<HtmlNode>(); 
    foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes(xPath)) 
    { 
     if (Regex.IsMatch(node.InnerHtml, pattern)) 
     { 
      matchingNodes.Add(node); 
     } 
    } 
    return matchingNodes; 
} 

희망이 있습니다. :)