.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からテーブルを抽出する手順
HTMLDocumentコンストラクターでソースを読み込みます。QuerySelectorAll("table")でテーブル要素を選択します。- 返された要素を反復し、各テーブルの
OuterHTMLを読み取ります。 - 抽出したマークアップとソースのベースURIから新しい
HTMLDocumentを作成します。 - テーブルごとに固有のファイル名を指定して
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のガイドで、テーブルの作成、編集、セル値の抽出を行います。