.NET APIによるHTMLテーブルデータの抽出

Aspose.HTML for .NET はHTMLファイルを HTMLDocument に読み込み、C#からDOMを検索できるようにします。対象の<table>を選択し、行を反復して<th>と<td>を読み取り、JSON、CSV、データベースなどへ渡せます。


C#でHTMLテーブルをJSONに抽出

次の例では、input.htmlの最初のテーブルを選択し、見出しセルとデータセルの順序を維持してtable-data.jsonへ書き込みます。複数のテーブルがある場合は、より具体的なセレクターを使用します。

HTMLテーブルデータを抽出するC#コード

using Aspose.Html;
using Aspose.Html.Dom;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

string inputPath = "input.html";
string outputPath = "table-data.json";

using HTMLDocument document = new HTMLDocument(inputPath);

// Select the table to extract
Element table = document.QuerySelector("table");
if (table == null)
{
    throw new InvalidOperationException("The HTML document does not contain a table.");
}

List<List<string>> tableData = new List<List<string>>();

// Read header and data cells in document order
foreach (Element row in table.QuerySelectorAll("tr"))
{
    List<string> values = new List<string>();

    foreach (Element cell in row.QuerySelectorAll("th, td"))
    {
        values.Add(cell.TextContent.Trim());
    }

    if (values.Count > 0)
    {
        tableData.Add(values);
    }
}

JsonSerializerOptions options = new JsonSerializerOptions
{
    WriteIndented = true
};

string json = JsonSerializer.Serialize(tableData, options);
File.WriteAllText(outputPath, json);

HTMLテーブルデータを抽出する手順

  1. HTMLDocument コンストラクターでソースを読み込みます。
  2. QuerySelector() で対象テーブルを選択します。複数ある場合はIDやclassを使用します。
  3. QuerySelectorAll() で行を取得し、各行の<th>と<td>を選択します。
  4. 行と列の順序を維持しながら各セルのTextContentを読み取り、整形します。
  5. JsonSerializerで値をシリアル化し、JSONファイルを保存します。

テーブルデータ抽出のオプションと制限

  • 対象を正確に選択します。 #id、.class、main tableなどを使用します。 CSSセレクター と XPathクエリ も参照してください。
  • 1つまたは複数を処理します。 全テーブルにはQuerySelectorAll("table")を使用します。
  • 行の範囲を制御します。 trは<thead>、<tbody>、<tfoot>の行を取得します。必要に応じて対象を絞ります。
  • 入れ子のテーブルを考慮します。 子孫セレクターは内部テーブルの行にも一致するため、対象構造に限定します。
  • 出力形式を選択します。 DOM APIで得た値は、.NET APIでJSON、CSV、テキストなどに保存できます。

HTMLテーブルデータ抽出のドキュメント

C#でHTMLテーブルを抽出 では、ローカルファイル、URL、見出し、リンク、CSVおよびテキスト出力を扱います。 データ抽出 ではDOM、CSSセレクター、XPathも説明しています。


Aspose.HTML for .NET のインストール

.NET CLI を使用して、NuGet から Aspose.HTML for .NET をインストールします。

dotnet add package Aspose.HTML

NuGet パッケージ マネージャーの UI を使用するか、パッケージ マネージャー コンソールで Install-Package Aspose.HTML を実行することもできます。セットアップの詳細は インストール ガイド を参照してください。評価制限なしで API を試すには、 一時ライセンス を申請できます。


HTMLテーブルデータ抽出に関するFAQ

1. 抽出データにテーブルの見出しを含めるにはどうしますか?

各行の<th>と<td>を読み取ります。th, tdセレクターにより、見出し値がJSON内の元の位置に保持されます。

2. 空のセルはJSON結果に保持されますか?

はい。各セルは1つの文字列となり、空のセルはTextContent.Trim()の後も空文字列として位置を維持します。

3. 抽出データをCSVまたはExcelに保存できますか?

はい。DOMは形式を指定せずに値を返します。.NET APIでCSVを書き、JSONへシリアル化するか、Excel用コンポーネントへ渡します。

4. 属性rowspanとcolspanは自動的に展開されますか?

いいえ。属性は利用できますが、フラットなリストは占有グリッドを表しません。長方形データには正規化処理が必要です。

5. プレーンテキストではなくリンクやHTMLを抽出できますか?

はい。TextContentはテキストだけを返します。マークアップにはInnerHTML、リンク先には<a>要素のhrefを使用します。

HTMLテーブルに関連する処理

Aspose.HTML for .NETのガイドで、テーブルの作成や編集、テーブルとそのマークアップの抽出を行います。