>Java >java지도 시간 >Jsoup를 사용하여 HTML을 일반 텍스트로 변환할 때 줄 바꿈을 어떻게 보존할 수 있습니까?

Jsoup를 사용하여 HTML을 일반 텍스트로 변환할 때 줄 바꿈을 어떻게 보존할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 23:24:30996검색

How Can I Preserve Line Breaks When Converting HTML to Plain Text Using Jsoup?

Jsoup을 사용하여 줄 바꿈 유지: 종합 가이드

HTML을 일반 텍스트로 변환할 때 줄 바꿈을 유지하는 것은 가독성을 유지하는 데 중요합니다. 널리 사용되는 Java HTML 파서 라이브러리인 Jsoup는 구조를 유지하면서 HTML에서 텍스트를 추출하는 효율적인 방법을 제공합니다.

이 가이드에서는 Jsoup의 Jsoup.parse를 사용할 때 줄 바꿈을 유지하는 구체적인 문제를 자세히 살펴보겠습니다. (str).text() 메소드. 이 방법은 HTML에서 텍스트 콘텐츠를 추출하지만 기본적으로 줄바꿈을 유지하지는 않습니다.

TextNode.getWholeText() 활용

처음에는 질문에서 다음과 같은 가능성을 탐색했습니다. Jsoup의 TextNode.getWholeText() 메소드를 사용합니다. 그러나 이 접근 방식은 HTML 태그의 맥락에서 줄 바꿈을 처리하지 않기 때문에 비효율적인 것으로 나타났습니다.

효과적인 솔루션

줄 바꿈을 유지하는 솔루션은 다음과 같습니다. 텍스트를 추출하기 전에 HTML 콘텐츠의 전처리 및 후처리를 모두 포함하는 보다 포괄적인 접근 방식입니다.

제시된 코드 조각은 다음 단계를 수행합니다.

  1. 다음을 사용하여 HTML 문자열을 구문 분석합니다. Jsoup.
  2. 줄 바꿈이 유지되도록 HTML 예쁜 인쇄를 비활성화합니다.

  3. 끝에 줄 바꿈(n)을 추가합니다. 태그 및

    태그.

  4. n 시퀀스를 실제 줄 바꿈으로 바꿉니다.
  5. 수정된 HTML을 정리하여 남아 있는 서식이나 태그를 모두 제거합니다.

구현

<code class="java">public static String br2nl(String html) {
    if(html==null)
        return html;
    Document document = Jsoup.parse(html);
    document.outputSettings(new Document.OutputSettings().prettyPrint(false));//makes html() preserve linebreaks and spacing
    document.select("br").append("\n");
    document.select("p").prepend("\n\n");
    String s = document.html().replaceAll("\\n", "\n");
    return Jsoup.clean(s, "", Whitelist.none(), new Document.OutputSettings().prettyPrint(false));
}</code>

요구 사항 충족

제공된 솔루션은 다음 요구 사항을 충족합니다.

  • HTML에서 기존 줄 바꿈(n)을 유지합니다.
  • 전환
    그리고

  • 결과 텍스트에서 원치 않는 서식이나 태그를 제거합니다.

이 솔루션을 구현하면 Jsoup을 사용하여 HTML을 일반 텍스트로 변환할 때 줄바꿈을 효과적으로 보존할 수 있습니다. 정확하고 판독 가능한 결과를 보장합니다.

위 내용은 Jsoup를 사용하여 HTML을 일반 텍스트로 변환할 때 줄 바꿈을 어떻게 보존할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.