.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テーブルデータを抽出する手順
HTMLDocumentコンストラクターでソースを読み込みます。QuerySelector()で対象テーブルを選択します。複数ある場合はIDやclassを使用します。QuerySelectorAll()で行を取得し、各行の<th>と<td>を選択します。- 行と列の順序を維持しながら各セルの
TextContentを読み取り、整形します。 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のガイドで、テーブルの作成や編集、テーブルとそのマークアップの抽出を行います。