Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

선진이네

[JAVA] XML Parsing 본문

Language/JAVA

[JAVA] XML Parsing

악마선진 2023. 1. 30. 22:23

XML

  • Markup Language
    • 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어
    • ex) HTML, SGML, …
  • XML : Extensible Markup Language
  • HTML과 달리 필요한 태그를 확장해서 사용 가능, 정확한 문법을 지켜야 동작 ( Well Formed)

기본 문법

  • 문서의 시작은 <?xml version =“1.0” encoding=”UTF-8”?>로 한다.
  • 반드시 root element가 존재해야 한다.
    • 나머지 태그들은 Tree 형태로 구성
  • 시작 태그와 종료 태그는 일치해야 한다.
  • 시작 태그는 key-value 구조의 속성을 가질 수 있다.
  • 태그는 대소문자를 구별한다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ssafy SYSTEM "./student.dtd">
<ssafy>
	<student no="12345">
		<name>홍길동</name>
		<loc>광주</loc>
		<phone>010-222-3333</phone>
	</student>

	<student no="23456">
		<name>장길산</name>
		<loc>서울</loc>
		<phone>010-333-4444</phone>
	</student>

	<student no="34567">
		<name>임꺽정</name>
		<loc>대전</loc>
	</student>
</ssafy>

Parsing

  • 문서에서 필요한 정보를 얻기 위해 태그를 구별하고 내용을 추출하는 과정 (전문적인 parser 활용)
  • SAX parser
    • Simple API for XML parser
    • 문서를 읽으면서 태그의 시작, 종료 등 이벤트 기반으로 처리하는 방식
  • DOM parser
    • Document Object Model
    • 문서를 다 읽고 난 후 문서 구조 전체를 자료구조에 저장하여 탐색하는 방식
  • SAX는 빠르고 한번에 처리하기 때문에 다양한 탐색이 어렵다
  • DOM은 다양한 탐색이 가능하지만 느리고 무거우며 큰 문서를 처리하기 어렵다.

'Language > JAVA' 카테고리의 다른 글

[JAVA] 예외 처리 못하겠으면, 이대로만 해  (0) 2023.09.08
[JAVA] Map - getOrDefault란,  (0) 2023.09.07
[JAVA] Lamda Expression  (0) 2023.01.28
[JAVA] 입출력 정리  (0) 2023.01.28
[JAVA] 추상 클래스  (0) 2023.01.26