C# - HTMLアジャイルパック - ノードコレクション - ループテーブルの行、nth-child(2)を選択する

c# html-agility-pack

質問

私はhtmlAgilityPackでwokringしていて、ウェブサイトからテーブルをつかんでいます。

どのようにしてこれを変更して、各行、2番目ごとの列のみの値を返すことができますか。

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("");

                       }



        }

受け入れられた回答

あなただけの第二を取得するために、XPathの位置フィルタを使用することができます<td>それぞれの子<tr>

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

これは実際にはCSS :nth-of-type()セレクタと同じで、すべての子が同じ型の場合(この場合、すべての子が<td>であることを意味する:nth-child()と同じ出力を示します。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ