메뉴 건너뛰기

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Java 라이브러리 중에 JSOUP 라고 심플하면서도 왠지 간지나는 HTML 문서를 다루는 라이브러리가 있다.


요 라이브러리를 이용해 HTML 문서에서 각종 경로를 추출해서 요 경로를 절대 경로로 바꿔보자.


먼저 테스트할 html 문서

<html>
<head>
    <title>테스트다!!</title>
 
    <script type="text/javascript" src="/resource/js/jquery-1.7.1.min.js"></script>
 
    <link type="text/css" href="/resource/css/admin/general.css" rel="stylesheet" />
</head>
 
<body>
<span id="navi">
    <img src="http://www.naver.com/resource/image/stitle_standarda.gif" alt="" />
</span>
 
테스트다!!
</body>
</html>


테스트소스


import java.io.IOException;
import java.net.URL;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
 
public class Test  {
    public static void main(final String[] args) throws IOException{
        Document doc = Jsoup.parse(
                new URL("http://127.0.0.1:8080/index.html").openConnection().getInputStream(), 
                "UTF-8", 
                "http://127.0.0.1:8080/");
         
        // src attribute 가 있는 엘리먼트들을 선택
        Elements elems = doc.select("[src]");
        for( Element elem : elems ){
            if( !elem.attr("src").equals(elem.attr("abs:src")) ){
                elem.attr("src", elem.attr("abs:src"));
            }
        }
         
        // href attribute 가 있는 엘리먼트들을 선택 
        elems = doc.select("[href]");
        for( Element elem : elems ){
            if( !elem.attr("href").equals(elem.attr("abs:href")) ){
                elem.attr("href", elem.attr("abs:href"));
            }
        }
         
        System.out.println(doc.toString());
    }
}

변환된 html 문서

<html>

<head>

    <title>테스트다!!</title>

    <script type="text/javascript" src="http://127.0.0.1:8080/resource/js/jquery-1.7.1.min.js"></script>

    <link type="text/css" href="http://127.0.0.1:8080/resource/css/admin/general.css" rel="stylesheet" />

</head>

<body>

    <span id="navi"> <img src="http://www.naver.com/resource/image/stitle_standarda.gif" alt="" /></span> 

    테스트다!!

</body>

</html>

JSOUP 사이트 : http://jsoup.org/


Maven Dependency


<dependency>

    <groupId>org.jsoup</groupId>

    <artifactId>jsoup</artifactId>

    <version>1.6.3</version>

</dependency>



List of Articles
번호 제목 날짜 조회 수
151 JSP, Spring, GMail 메일발송 간단 예제 2016.09.12 32791
150 JQuery 자동완성 플러그인 JSDT설치 file 2016.09.19 8896
149 전자정부 프레임워크란? file 2016.09.19 8342
148 파일 읽고쓰는 암호화/복호화 2016.09.21 7385
147 웹브라우저(크롬) 설정하여 웹을 실행해 보자 file 2016.09.19 7205
146 회원가입 폼(form)으로 보는 Validator 구현하는 방법 file 2016.08.29 7108
145 전자정부표준프레임워크 - 설치 file 2016.09.02 6277
144 기본적인 스크립트 보안 2019.01.16 6044
143 eclipse 콘솔(로그)에 디버그(Debug) 모드에서 실행된 쿼리문을 보여주자. - 전자정부프레임워크 오라클 file 2016.08.29 5999
142 공통컴포넌트 생성하기 - 게시판 file 2016.09.19 5754
141 회원가입 양식에서 (필수/옵션)필드 추가/제거하기 file 2016.08.29 5333
140 날짜 시간 포맷 제어 자바 클래스 : JAVA DateUtils Date time file 2016.12.09 5233
139 스프링(Spring)의 Validator 기능을 사용하다가 '정의되지 않음 또는 null 참조인 'type' 속성을 가져올 수 없습니다.'라는 오류를 만났을 때 해결방법 file 2016.08.29 5165
138 System.out.println(); 이클립스에서 자동화기능 사용 file 2016.09.19 5157
137 접근 제한자 private/ protected/ public / default file 2016.10.06 5136
136 전자정부프레임워크 v2.5, v2.6 오라클 세팅하기 file 2016.09.12 5109
135 예외 만들기 2016.09.13 4961
134 MySQL에 All-in-one 설치시 webmaster로 로그인 안되는 문제 해결을 위한 2가지 수정사항 file 2016.08.29 4954
133 다양한 문자 조합을 이용한 카운팅 구하기 2016.12.09 4941
132 자바 XML 제어 라이브러리 XStream : JAVA 2016.12.09 4917
Board Pagination Prev 1 2 3 4 5 6 7 8 Next
/ 8

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved