-5

私はtrの文字列(htmlテーブル行)のリストを持っています。各trには3つのtdがあります。

HtmlAgilityPack を使用して、Web ページからデータを除外しています。

var data= from tr in content.ChildNodes.Where(c =>c.Name.Equals("tr"))                    
         select tr;

<tr><td></td><td>aaa</td><td></td></tr>
<tr><td></td><td>bbb</td><td></td></tr>
<tr><td></td><td>aaa</td><td></td></tr>
<tr><td></td><td>aaa</td><td></td></tr>

....

td[2] でグループ化されたすべての値を取得したい、つまり: aaa、bbb

ありがとう。

更新: data.GroupBy(tr => tr.ChildNodes.Where(e => e.Name == "td") .Skip(1).First().InnerText); 正常に動作します

皆さんありがとう。

4

2 に答える 2

2

試す:

data.GroupBy(tr => tr.ChildNodes
                     .Where(e => e.Name == "td")
                     .Skip(1).First().Value));

もちろん、これはtd、各 に少なくとも 2 つのがあることを前提としていtrます。そうでない場合は、Skip(1).First()呼び出しで null チェックも行う必要があります。

于 2013-05-27T14:52:28.483 に答える
0

これにより、TD 値がコレクションに保存されます。

var entries = from td in data.DocumentNode.SelectNodes("//td").Where(node => node.InnerHtml != string.Empty) select td.InnerHtml;
于 2013-05-27T14:59:48.130 に答える