HTML은 웹사이트, 웹 어플리케이션 등에서 많이 사용되는 마크업 언어입니다. HTML의 내용은 서로 다른 태그를 사용하여 구분됩니다. 여는 태그와 닫는 태그를 무시하면서 C# 언어를 사용하여 HTML을 일반 텍스트로 쉽게 변환할 수 있습니다. 마찬가지로, CSS 스타일 시트 사양, JavaScript 또는 요구 사항에 따라 HTML의 다른 섹션이 있을 수 있습니다. 따라서 HTML 문서에서 텍스트를 추출하는 것과 같습니다. 자세한 내용은 다음 섹션을 살펴보겠습니다.
- C#에서 HTML을 일반 텍스트로 변환
- C#에서 INodeIterator를 사용하여 HTML을 텍스트 파일로 변환
- C#을 사용하여 다양한 접근 방식으로 HTML에서 텍스트 추출
- C#을 사용하여 URL 웹 페이지 HTML을 텍스트로 변환
C#에서 HTML을 일반 텍스트로 변환
Aspose.HTML for .NET API를 사용하여 HTML을 일반 텍스트로 변환할 수 있습니다. 다음 NuGet 설치 명령을 사용하여 .NET Framework 기반 환경에서 쉽게 구성할 수 있습니다.
PM> Install-Package Aspose.Html
C#에서 INodeIterator를 사용하여 HTML을 텍스트 파일로 변환
.NET API용 Aspose.HTML은 DOM(Document Object Model)을 기반으로 하므로 INodeIterator 인터페이스를 사용하여 API의 다른 노드를 반복할 수 있습니다. 마찬가지로 NodeFilter를 정의하고 콘텐츠 필터링을 위한 메서드를 재정의하는 컨트롤을 제공합니다. HTML 파일의 스타일, 스크립트 또는 기타 요소를 무시하여 텍스트 문자열만 선택할 수 있습니다. 다음은 C#을 사용하여 HTML을 일반 TXT 파일로 변환하는 단계입니다.
- 입력 HTML 파일 읽기
- 노드 반복기의 인스턴스 초기화
- INodeIterator 인스턴스 생성
- 스타일 필터 확인
- 문자열에서 노드 값 읽기
- HTML의 텍스트 내용을 TXT 파일로 쓰기
아래 코드는 C#을 사용하여 HTML을 일반 텍스트 파일로 변환하는 방법을 보여줍니다.
String content = File.ReadAllText(dataDir + "Test2.html");
// HTML 문서의 인스턴스 생성
using (var document = new HTMLDocument(content, ""))
{
// 문서에서 텍스트 요소를 수집하는 첫 번째 방법
// 노드 반복기의 인스턴스 초기화
Aspose.Html.Dom.Traversal.INodeIterator iterator = document.CreateNodeIterator(document, Aspose.Html.Dom.Traversal.Filters.NodeFilter.SHOW_TEXT, new StyleFilter());
StringBuilder sb = new StringBuilder();
Aspose.Html.Dom.Node node;
while ((node = iterator.NextNode()) != null)
sb.Append(node.NodeValue);
Console.WriteLine(sb.ToString());
File.WriteAllText(@"NodeIterator.txt", sb.ToString());
}
///<summary>
/// 'style' 및 'script' 요소의 내용을 무시하기 위해 생성된 사용자 필터를 나타냅니다.
///</summary>
class StyleFilter : Aspose.Html.Dom.Traversal.Filters.NodeFilter
{
public override short AcceptNode(Aspose.Html.Dom.Node n)
{
//요소를 피하려면 이름을 대문자로 작성하십시오.
return (n.ParentElement.TagName == "STYLE" || n.ParentElement.TagName == "SCRIPT" ? FILTER_REJECT : FILTER_ACCEPT);
}
}
C#을 사용하여 다양한 접근 방식으로 HTML에서 텍스트 추출
INodeIterator를 사용하여 HTML을 텍스트로 변환하는 방법을 배웠습니다. 마찬가지로 이러한 요구 사항을 달성하기 위한 몇 가지 다른 접근 방식이 있습니다. 텍스트를 추출하는 사용자 지정 메서드를 만들거나 아래 단계에 설명된 대로 TextContent 속성으로 작업할 수 있습니다.
- 입력 HTML 문서 로드
- 사용자 정의 방법 정의
- 각 NodeType이 요소 노드인지 텍스트 노드인지 확인합니다.
- TextContent 속성을 사용하여 텍스트 요소 가져오기
- 출력 TXT 파일 저장
아래 코드 조각은 C#에서 HTML을 일반 텍스트로 변환하는 두 가지 다른 접근 방식을 설명합니다.
String text = "";
String content = File.ReadAllText(dataDir + "Test2.html");
// HTML 문서의 인스턴스 생성
var document = new HTMLDocument(content, "");
// 사용자 정의 방법을 사용하여 문서에서 텍스트 요소를 수집하는 두 번째 방법
text = GetContent(document.Body);
File.WriteAllText("Test.txt", text);
// TextContent 속성을 사용하여 문서에서 텍스트 요소를 수집하는 세 번째 방법
text = document.Body.TextContent;
File.WriteAllText("Test.txt", text);
static string GetContent(Aspose.Html.Dom.Node node)
{
StringBuilder sb = new StringBuilder();
foreach (var n in node.ChildNodes)
{
if (n.NodeType == Aspose.Html.Dom.Node.ELEMENT_NODE)
sb.Append(GetContent(n));
else if (n.NodeType == Aspose.Html.Dom.Node.TEXT_NODE)
sb.Append(n.NodeValue);
}
return sb.ToString();
}
C#을 사용하여 URL 웹 페이지 HTML을 텍스트로 변환
디스크에 다운로드하여 HTML 파일이 존재해야 하는 오프라인 웹 페이지 HTML을 텍스트로 변환하는 방법은 이미 다루었습니다. HTML 파일을 디스크에 저장할 필요조차 없는 한 단계 더 나아가겠습니다. C#을 사용하여 URL을 지정하여 웹 페이지를 TXT 파일로 직접 변환할 수 있습니다. 예를 들어 Aspose.HTML for .NET API의 제품 페이지를 아래 단계에 따라 TXT 파일로 변환해 보겠습니다.
- HTMLDocument 객체 초기화 및 URL 지정
- HTML 형식의 텍스트 내용 읽기
- 웹 페이지에서 추출한 텍스트로 TXT 파일 작성
아래 코드는 C#을 사용하여 URL 웹 페이지 HTML을 텍스트로 변환하는 방법을 보여줍니다.
// URL로 HTMLDocument 객체 초기화
HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net");
// HTML 형식의 텍스트 내용 읽기
String text = document.Body.TextContent;
// 추출된 텍스트로 TXT 파일 쓰기
File.WriteAllText("Webpage.txt", text);
결론
이 기사에서는 HTML 파일을 일반 텍스트로 변환하고 HTML에서 텍스트를 추출하는 방법과 C#을 사용하여 온라인 웹 페이지 URL을 TXT 파일 형식으로 변환하는 방법에 대해 설명했습니다. 다양한 접근 방식을 사용할 수 있으며 추가 지원이 필요한 경우 무료 지원 포럼을 통해 언제든지 문의하십시오.
또한보십시오
팁: 텍스트에서 애니메이션을 생성할 수 있는 무료 텍스트를 GIF로 변환에 관심이 있을 수 있습니다.