.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 쿼리 도 참조하세요.
  • 하나 또는 여러 테이블을 처리합니다. 전체 테이블에는 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 결과에 유지되나요?

예. 각 셀은 문자열 하나를 생성하며 빈 셀은 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 가이드로 테이블을 만들거나 편집하고 테이블과 해당 마크업을 추출합니다.