Aspose.HTML for .NET으로 HTML 로드하기
Aspose.HTML for .NET 은 HTML을 DOM 쿼리, 콘텐츠 변경, 데이터 추출, 저장 및 변환에 사용하는 메모리 내 문서 트리인 HTMLDocument 로 로드합니다. 제공되는 HTMLDocument 생성자 는 로컬 경로, 원격 URL, 마크업 문자열 또는 스트림을 받을 수 있으므로 애플리케이션의 워크플로에 맞는 소스를 선택할 수 있습니다.
C#에서 HTML 파일 로드하기
로컬 파일 경로를 HTMLDocument 생성자에 전달합니다. 로드가 끝나면 문서에서 파싱된 DOM에 접근할 수 있습니다. 다음 예제는 input.html을 열고
OuterHTML
을 통해 문서 요소의 전체 마크업을 읽습니다.
파일에서 HTML 문서를 로드하는 C# 코드
using System;
using Aspose.Html;
using HTMLDocument document = new HTMLDocument("input.html");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
HTML 소스와 생성자 선택하기
- 로컬 파일. HTML이 디스크에 있고 상대 리소스를 문서 위치를 기준으로 확인해야 할 때 파일 경로를 전달합니다.
- 원격 URL. 애플리케이션이 웹페이지와 허용된 외부 리소스를 로드해야 할 때 HTTP 또는 HTTPS 주소를 전달합니다.
- 마크업 문자열. HTML 코드가 이미 메모리에 있다면 기준 URL과 함께 전달합니다.
- 스트림. HTML이 업로드, 응답 본문, 데이터베이스 또는 다른 메모리 내 소스에서 제공될 때 읽을 수 있는 스트림과 기준 URL을 전달합니다.
C#에서 URL로 HTML 로드하기
단일 주소를 받는 생성자는 원격 웹페이지를 열 수 있습니다. URL 로드는 환경 구성에서 접근이 허용된 외부 리소스도 처리합니다. 로드 후 DOM 속성과 메서드를 사용하여 문서를 검사하거나 수정할 수 있습니다.
URL에서 HTML 문서를 로드하는 C# 코드
using System;
using Aspose.Html;
using HTMLDocument document =
new HTMLDocument("https://docs.aspose.com/html/net/creating-a-document/");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
C#에서 문자열로 HTML 로드하기
애플리케이션에 HTML 마크업 문자열이 이미 있다면 두 인수 생성자를 사용합니다. 두 번째 인수는 상대 이미지, 스타일시트, 스크립트, 글꼴 및 링크를 확인하는 데 사용되는 기준 URL입니다. 이 독립적인 예제는 현재 디렉터리를 나타내는 "."을 사용합니다. 마크업에 상대 참조가 있다면 실제 디렉터리나 웹 주소를 지정하십시오.
문자열에서 HTML 문서를 만드는 C# 코드
using System;
using Aspose.Html;
string markup = "<p>HTML loaded from a string</p>";
// Use the current directory as the base URL
string baseUrl = ".";
using HTMLDocument document = new HTMLDocument(markup, baseUrl);
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
C#에서 스트림으로 HTML 로드하기
스트림 생성자는 스트림의 현재 위치부터 읽습니다. 애플리케이션이 방금 HTML을 작성했다면 문서를 만들기 전에 writer를 플러시하고 위치를 처음으로 되돌리십시오. HTMLDocument가 읽기를 마칠 때까지 스트림을 열어 두어야 합니다. 이 예제의 마크업에는 상대 리소스가 없으므로 현재 디렉터리를 나타내는 중립적인 기준 URL "."을 사용합니다.
스트림에서 HTML 문서를 로드하는 C# 코드
using System;
using System.IO;
using System.Text;
using Aspose.Html;
using MemoryStream stream = new MemoryStream();
// Keep the stream open after disposing the writer
using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8, 1024, true))
{
writer.Write("<p>HTML loaded from a stream</p>");
writer.Flush();
}
// Reset the stream before HTMLDocument reads it
stream.Position = 0;
using HTMLDocument document =
new HTMLDocument(stream, ".");
string html = document.DocumentElement.OuterHTML;
Console.WriteLine(html);
HTML 로드 동작과 고려 사항
- 생성자는 HTML을 DOM으로 파싱합니다. 생성된 트리는 HTML 파싱 규칙을 따릅니다. 나중에 직렬화하면 구조나 마크업이 정규화될 수 있으므로 원본과 바이트 단위로 동일할 것으로 기대하지 마십시오.
- 기준 URL은 상대 리소스를 결정합니다. 문자열과 스트림 입력에는 고유한 문서 위치가 없습니다. 상대 CSS, 이미지, 스크립트, 글꼴 및 링크를 확인할 위치를 지정하십시오.
- 문서 생성자는 동기식으로 로드합니다. 문서와 허용된 외부 리소스가 로드될 때까지 기다립니다. 비동기 탐색이 필요하면
Navigate()와 문서 이벤트를 사용하십시오. - 원격 로드는 환경에 따라 달라집니다. 잘못된 주소, 리디렉션, 인증, 네트워크 장애 및 보안 제한 때문에 웹페이지나 연결된 리소스를 로드하지 못할 수 있습니다.
- 로드한 문서를 해제합니다.
HTMLDocument는 문서와 리소스 상태를 보유합니다. using 선언이나 using 블록을 사용하면 처리가 끝날 때 해당 상태가 해제됩니다.
HTML 로드 문서와 API 참조
생성자 예제, 기준 URL 지침, 비동기 탐색 및 일반적인 로드 문제는 HTML 문서 생성 또는 로드 에서 확인할 수 있습니다. 문서를 로드한 후에는 HTML DOM 가이드에서 노드를 탐색하거나 HTML 문서 편집 가이드에서 콘텐츠와 속성을 변경하십시오. 기존 소스가 없는 새 문서를 만들려면 C#에서 HTML 생성 을 참조하십시오.
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. C#에서 HTML 문서를 어떻게 로드하나요?
로컬 경로나 URL을 HTMLDocument 생성자에 전달합니다. 문자열이나 스트림에 있는 마크업은 콘텐츠와 기준 URL을 함께 전달합니다. 생성자는 소스를 파싱하고 생성된 HTML DOM을 제공합니다.
2. HTML을 로드하면 원본 마크업이 그대로 유지되나요?
바이트 단위의 동일성을 전제로 해서는 안 됩니다. Aspose.HTML은 소스를 DOM으로 파싱하며 이후 직렬화 과정에서 문서 모델을 유지하면서 암시적 요소, 문자 인코딩, 공백 또는 마크업 구조를 정규화할 수 있습니다.
3. Aspose.HTML에서 웹페이지를 비동기식으로 로드할 수 있나요?
가능합니다. 생성자는 동기식 로드를 수행합니다.
HTML 비동기 로드
의 절차에 따라 문서를 만들고 OnReadyStateChange 또는 OnLoad 같은 로드 이벤트를 구독한 뒤 Navigate()를 호출하고 애플리케이션에서 정한 시간 제한 동안 기다리십시오.
4. 원격 HTML 문서를 로드하지 못하는 이유는 무엇인가요?
잘못되었거나 접근할 수 없는 URL, 리디렉션, 인증 요구 사항, 네트워크 제한, 차단된 외부 리소스 또는 환경 보안 설정이 일반적인 원인입니다. 주소를 확인하고 애플리케이션에 필요한 네트워크 접근만 구성하십시오.
5. HTML을 로드할 때 외부 리소스를 어떻게 제한할 수 있나요?
필요한 보안 및 리소스 로드 설정을 적용하는 Configuration으로 문서를 만듭니다. 특히 HTML이나 URL이 신뢰할 수 없는 사용자에게서 제공될 때 원격 접근을 신뢰할 수 있는 위치로 제한하십시오.
관련 HTML 문서 워크플로
문서 생성, 편집, 선택 또는 구조화된 쿼리 작업을 계속합니다.