Java XML getDocumentElement()

2023. 1. 6. 11:36Java

프로젝트 내 src 내 xml 패키지 내 test01.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!-- 엘리먼트 선언 -->
<!ELEMENT 도서리스트 (책)* >
    <!ELEMENT 책 (제목, 저자+, 출판사, 가격)>
        <!ELEMENT 제목 (#PCDATA)>
        <!ELEMENT 저자 (#PCDATA)>
        <!ELEMENT 출판사 (#PCDATA)>
        <!ELEMENT 가격 (#PCDATA)>
<!-- <!ELEMENT 도서리스트 (책*) > 으로 해도 된다 책이라는 자식 엘레먼트를 생략할 수도있고
또 여러번 사용할수도 있다는 의미다. 저자+ 는 한번이상여러번 이라는 의미다. (#PCDATA) 는
문자데이타라는 의미다. -->

<!-- 속성 선언 -->
    <!ATTLIST 책
        id ID #IMPLIED
       분류 CDATA #REQUIRED>

프로젝트 내 src 내 xml 패키지 내 test01.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- 도서리스트 만들기 전에 독타입 선언 -->
<!DOCTYPE 도서리스트 SYSTEM "test01.dtd">

<도서리스트>
    <책 분류="컴퓨터" id="book1">
        <제목>JAVA 프로그래밍</제목>
        <저자>김말똥</저자>
        <출판사>아이티 출판</출판사>
        <가격>20000</가격>
    </책>
    <책 분류="소설">
        <제목>삼국지</제목>
        <저자>이문열</저자>
        <출판사>역사 출판</출판사>
        <가격>15000</가격>
    </책>
    <책 분류="컴퓨터">
        <제목>C언어</제목>
        <저자>강길동</저자>
        <출판사>터보 출판사</출판사>
        <가격>15000</가격>
    </책>
</도서리스트>

프로젝트 내 src 내 java_xml 패키지 내 GetRootElement.java

package java_xml;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class GetRootElement {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		//DOM 파서 생성
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		
		//XML 문서를 파싱
		//경로는 프로젝트 오른쪽마우스버튼 클릭해서 properties에서 경로 확인
		Document doc = builder.parse("src/xml/test01.xml");
//		Document doc = builder.parse("src\\xml\\test01.xml");//윈도우방식
		
		// 루트 엘리먼트 얻어오기
		Element rootEl = doc.getDocumentElement();//도서리스트객체
		
		System.out.println(rootEl.getTagName());
	}

}