Notice
Recent Posts
Recent Comments
Link
관리 메뉴

DreamFactory7

DOM xml 파싱때 오류 본문

삽질/자바

DOM xml 파싱때 오류

우루사1호 2013. 1. 4. 17:07
import javax.xml.parsers.*;
import org.w3c.dom.*;

public class GetRootElement {
    public static void main(String[] args) throws Exception {
        // DOM 파서 생성
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        //factory.setIgnoringElementContentWhitespace(true); // 이걸안해주면 에러난다.
        DocumentBuilder builder = factory.newDocumentBuilder();

        // XML문서 파싱하기
        Document document = builder.parse("bml.xml");

        // 루트 엘리먼트 참조 얻기
        Element eRoot = document.getDocumentElement();

        // 루트 엘리먼트 이름 출력
        System.out.println(eRoot.getTagName());
       
        // 첫번째 book 엘리먼트 정보 얻기
        try{
        Element eBook = (Element)eRoot.getFirstChild();
        System.out.println(eBook);
        Element eTitle = (Element) eBook.getFirstChild();
        Text tTitle = (Text) eTitle.getFirstChild();
        String strTitle=tTitle.getData();
        System.out.println(strTitle);}
        catch(Exception e){
            e.printStackTrace();
        }
    }
}



결과화면

booklist
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredTextImpl cannot be cast to org.w3c.dom.Element
    at GetRootElement.main(GetRootElement.java:22)


원인 : 아마도 공백을 자르지않아서 발생한문제로 사료된다.

해결 : 굵은글씨처럼 공백을 잘라내니 해결되었음

참조 : Java개발자를 위한 XML, 프리렉