.NET API로 HTML 파일에서 테이블 추출
Aspose.HTML for .NET
은 HTML 파일을
HTMLDocument
로 로드하고 DOM을 통해 테이블에 접근할 수 있게 합니다. C# 애플리케이션은 하나 또는 모든 <table> 요소를 선택하고 OuterHTML을 읽어 전체 테이블 마크업이 포함된 별도의 HTML 문서를 만들 수 있습니다.
C#에서 HTML 파일의 모든 테이블 추출
다음 예제는 input.html의 모든 테이블을 선택하고 각각 번호가 지정된 HTML 파일로 저장합니다. 처리 중 상대 리소스 URL을 원래 위치를 기준으로 확인할 수 있도록 원본 문서의 기본 URI를 각 출력 문서에 전달합니다.
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을 원본 문서를 기준으로 해석할 수 있습니다. - 스타일은 별도로 처리합니다. 테이블 내부의 인라인 스타일과
style속성은 유지되지만 원본 문서의<head>또는 외부 스타일시트 규칙은 테이블 전용 문서에 복사되지 않습니다. - 마크업과 데이터 추출을 구분합니다. 이 워크플로는 선택한 각
<table>요소와 해당 마크업을 저장합니다. JSON, CSV 또는 다른 형식으로 셀 값을 수집하려면 HTML 테이블 데이터 추출 을 사용합니다.
HTML 테이블 추출 문서
C#에서 HTML 테이블 추출 에서 테이블 선택, 행과 셀 처리, 링크 추출 및 출력 예제를 확인하세요. 데이터 추출 섹션에서는 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. 하나의 HTML 파일에서 모든 테이블을 추출할 수 있나요?
예. QuerySelectorAll("table")은 문서 순서대로 일치하는 모든 테이블을 반환합니다. 결과를 순회하고 각 테이블을 별도로 저장할 때 고유한 출력 이름을 지정합니다.
2. 특정 HTML 테이블 하나만 추출하려면 어떻게 하나요?
안정적인 ID, 클래스 또는 구조 선택자와 함께 QuerySelector()를 사용합니다. 예를 들어 #price-table이나 main table을 사용하면 모든 <table> 요소 대신 첫 번째 일치 항목만 반환됩니다.
3. 추출한 HTML 테이블에 CSS 서식이 유지되나요?
테이블 내부의 인라인 스타일과 style 속성은 OuterHTML에 유지됩니다. 독립 파일에서 같은 모양을 유지하려면 원본 <head>의 CSS 규칙이나 외부 스타일시트를 별도로 복사하거나 연결해야 합니다.
4. HTML 마크업을 저장하지 않고 테이블 데이터를 CSV 또는 JSON으로 추출할 수 있나요?
예. 이는 별도의 워크플로입니다. 테이블 행을 순회하고 <th> 및 <td> 값을 읽어 CSV 작성기나 JSON 직렬 변환기에 전달합니다. 전체 예제는
HTML 테이블 데이터 추출
을 참조하세요.
5. 중첩된 HTML 테이블도 별도로 추출되나요?
일반적인 table 선택자는 외부 테이블과 중첩 테이블을 모두 찾습니다. 중첩 테이블을 상위 테이블 안에만 유지하고 별도 파일로 저장하지 않으려면 더 구체적인 선택자를 사용합니다.
관련 HTML 테이블 워크플로
다른 Aspose.HTML for .NET 가이드를 사용하여 테이블을 만들고 편집하거나 셀 값을 추출하세요.