HTML 민첩성 팩 - 노드 컬렉션 - 루프 테이블 행, n 번째 자식 선택 (2)

c# html-agility-pack

문제

htmlAgilityPack으로 wokring하고 있으며 웹 사이트에서 테이블을 가져옵니다.

각 행, 모든 두 번째 열에 대해서만 값을 반환하도록 수정하는 방법은 무엇입니까?

public static void SearchAnimal(string param)
        {
            string prm = param;
            string url = "http://xxx/xxx.action?name=";
            //HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url+prm);
            //HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            //StreamReader stream = new StreamReader(response.GetResponseStream());
            //string final_response = stream.ReadToEnd();
            var webGet = new HtmlWeb();
            var doc = webGet.Load(url + prm);

            HtmlNodeCollection tr = doc.DocumentNode.SelectNodes("//table[@id='animal']//tbody//tr//td");

                  for(int i = 0; i <= tr.Count; ++i){
                    var link = tr
                       .Descendants("a")
                       .First(x => x.Attributes["href"] != null);
                    string hrefValue = link.Attributes["href"].Value;
                    string name = link.InnerHtml;
                    Match match = Regex.Match(hrefValue, @"(\d+)$");
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    Console.WriteLine("Result " + tr + ":");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.WriteLine("Animal Name: " + name);
                    Console.WriteLine("Animal Key: " + match.Value);
                    Console.WriteLine("-------------------------");
                    Console.WriteLine("");

                       }



        }

수락 된 답변

당신은 2를 얻기 위해 XPath에 위치 필터를 사용할 수 있습니다 <td> 각에서 어린이 <tr> :

//table[@id='animal']//tbody//tr/td[2]

이것은 실제로 CSS :nth-of-type() 셀렉터와 같으며, 모든 자식이 같은 유형 인 경우에만 :nth-child() 와 동일한 결과를 보여줍니다 (이 경우 모든 자식이 <td> 임을 의미합니다).




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