0

私はhtml敏捷性パックの助けを借りてhtml表形式の情報を解析しています。今最初に私はそのテーブルの行を次のように見つけています

var rows = table.Descendants("tr");

次に、各行のセルデータを次のように検索します。

foreach(var row in rows)
{
     string rowInnerText = row.InnerText;
}

これでセルデータが得られますが、NameAdressPhone Noのようにスペースを入れないでください。ただし、Name Address Phone Noのように内部テキストが必要なのは、 tdタグがある場所を意味します。異なる列セルの間にスペースを1つ残しておきます。

4

1 に答える 1

1

これがアイデアですが、完全にはテストされていません。

var rows = table.Descendants("tr").Select(tr =>
    string.Join(" ", tr.Descendants("td").Select(td => td.InnerText).ToArray()));

IEnumerable<string>これにより、含まれている各要素が、質問で説明されている形式でテーブルの1行を表すenが得られます。他の処理のために実際に行のループが必要な場合は、ループを維持foreachし、本体でLINQマジックを使用してください。

var rows = table.Descendants("tr");

foreach (var row in rows)
{
     string rowInnerText = string.Join(" ",
         row.Descendants("td").Select(td => td.InnerText).ToArray());
}
于 2010-04-03T10:42:43.617 に答える