.NET APIでHTMLファイルからテーブルを抽出

Aspose.HTML for .NET はHTMLファイルを HTMLDocument に読み込み、DOMからテーブルへアクセスできるようにします。C#アプリケーションは1つまたはすべての<table>を選択し、OuterHTMLを読み取って、完全なマークアップを含む個別のHTMLドキュメントを作成できます。


C#でHTMLファイルの全テーブルを抽出

次の例では、input.html内の全テーブルを選択し、番号付きのHTMLファイルへ個別に保存します。ソースのベースURIを各出力へ渡すため、相対リソースURLを元の場所から解決できます。

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

using Aspose.Html;
using Aspose.Html.Dom;
using System;

// Load the source HTML file
using HTMLDocument document = new HTMLDocument("input.html");

int tableNumber = 1;
foreach (Element table in document.QuerySelectorAll("table"))
{
    // Save each complete table to a separate HTML file
    string outputPath = $"table-{tableNumber}.html";

    using HTMLDocument tableDocument = new HTMLDocument(table.OuterHTML, document.BaseURI);
    tableDocument.Save(outputPath);

    tableNumber++;
}

if (tableNumber == 1)
{
    // Report that the selector returned no tables
    Console.WriteLine("No tables were found in the HTML document.");
}

HTMLからテーブルを抽出する手順

  1. HTMLDocument コンストラクターでソースを読み込みます。
  2. QuerySelectorAll("table") でテーブル要素を選択します。
  3. 返された要素を反復し、各テーブルの OuterHTML を読み取ります。
  4. 抽出したマークアップとソースのベースURIから新しいHTMLDocumentを作成します。
  5. テーブルごとに固有のファイル名を指定して Save() を呼び出します。

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

  • 抽出範囲を選択します。 すべてにはtable、限定するには#price-table、.results table、main tableなどを使用します。
  • マークアップを保持します。 OuterHTMLには<table>本体、属性、行、セル、入れ子の内容が含まれます。
  • リソースの基準を保持します。 document.BaseURIにより、相対URLをソースドキュメントに対して解釈できます。
  • スタイルを個別に扱います。 インラインスタイルは残りますが、<head>内や外部スタイルシートの規則はコピーされません。
  • マークアップとデータを区別します。 JSONやCSV用のセル値には HTMLテーブルデータの抽出 を使用します。

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

C#でHTMLテーブルを抽出 では、選択、行とセル、リンク、出力例を説明しています。 データ抽出 ではDOM、CSSセレクター、XPath、Webコンテンツ抽出を扱います。


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. 1つのHTMLファイルから全テーブルを抽出できますか?

はい。QuerySelectorAll("table")はドキュメント順ですべて返します。結果を反復し、テーブルごとに固有の出力名を指定します。

2. 特定のHTMLテーブルだけを抽出するにはどうしますか?

対象のID、class、構造に応じて、[id="price-table"]やmain tableなどをQuerySelector()で使用します。

3. 抽出したテーブルはCSS書式を保持しますか?

テーブル内のインラインスタイルとstyle属性はOuterHTMLに残ります。<head>や外部スタイルシートの規則は別途コピーまたはリンクする必要があります。

4. HTMLではなくCSVまたはJSONへデータを抽出できますか?

はい。行を反復して<th>と<td>の値を読み取り、CSV writerまたはJSON serializerへ渡します。 HTMLテーブルデータの抽出 も参照してください。

5. 入れ子のHTMLテーブルも個別に抽出されますか?

一般的なtableセレクターは外側と内側の両方に一致します。内側のテーブルを親の内部だけに残す場合は、より具体的なセレクターを使用します。

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

Aspose.HTML for .NETのガイドで、テーブルの作成、編集、セル値の抽出を行います。