>  기사  >  Java  >  Jsoup를 사용하여 HTML을 일반 텍스트로 변환할 때 줄바꿈을 유지하는 방법은 무엇입니까?

Jsoup를 사용하여 HTML을 일반 텍스트로 변환할 때 줄바꿈을 유지하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-03 11:02:29228검색

How to Preserve Line Breaks When Converting HTML to Plain Text with Jsoup?

Jsoup을 사용하여 HTML을 일반 텍스트로 변환할 때 줄 바꿈 유지

HTML 콘텐츠를 일반 텍스트로 변환할 때 가독성을 위해 줄 바꿈을 유지하는 것이 중요합니다. . 기본적으로 Jsoup의 text() 메서드는 줄 바꿈을 제거하여 잠재적으로 출력 형식을 방해합니다. 다행히 getWholeText() 메서드를 활용하여 줄 바꿈을 유지하는 해결 방법이 있습니다.

getWholeText()를 사용하여 줄 바꿈 유지

Jsoup의 getWholeText() 메서드 줄 바꿈을 포함하여 문서의 전체 텍스트 내용을 반환합니다. 이 방법을 활용하려면 다음 단계를 따르세요.

  1. Jsoup을 사용하여 HTML 문자열을 구문 분석합니다.

    <code class="java">Document doc = Jsoup.parse(htmlString);</code>
  2. 문서 요소를 반복합니다. 텍스트 추출:

    <code class="java">for (Element element : doc.getAllElements()) {
        text += element.getWholeText().trim();
        if (element.tagName().equals("br")) {
            text += "\n";
        }
    }</code>


태그 뒤에 줄 바꿈을 추가하면 출력 텍스트에 줄 바꿈이 유지되도록 할 수 있습니다.

고급 솔루션: br2nl() 메서드

위 솔루션은 효과적으로 작동하지만 다음 유틸리티 메서드를 통합하여 개선할 수 있습니다.

<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));
    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의 줄 바꿈이 유지되도록 보장합니다. HTML 요소에 선택적으로 줄 바꿈을 추가한 다음 정규식 대체를 수행하여 이스케이프된 줄 바꿈을 실제 줄 바꿈으로 대체함으로써 이를 수행합니다.

위 내용은 Jsoup를 사용하여 HTML을 일반 텍스트로 변환할 때 줄바꿈을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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