๋ชฉ์ฐจ
โ โ โ XML โ โ โ
โ โ โ XML(eXtensible Markup Language).txt โ โ โ
โ โ โ XML(eXtensible Markup Language) โ โ โ
โ ๊ฐ์
๋งํฌ์
์ด๋ ๋ฌธ์ ๋ด์ฉ ์ด์ธ์ ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ฑฐ๋ ํํํ๊ธฐ ์ํด ์ ์ํ
๋ถ๊ฐ์ ์ธ ์ ๋ณด๋ผ ํ ์ ์์ผ๋ฉฐ, ๋งํฌ์
์ ํํ์ ๊ฐ ์ดํ๋ฆฌ์ผ์ด์
์์ ์ ์ํ
๊ณ ์ ํ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
์ฆ, ๋ฌธ์ ํธ์ง๊ธฐ๋ง๋ค ๋งํฌ์
์ ํํํ๋ ๋ฐฉ๋ฒ์ด ์๋ก ๋ค๋ฅด๋ค๋ ์๋ฏธ์ด๋ค.
aflvekdc 45 99443304221
vleokde 49 99530219432
<people>
<person sid="1">
<name>aflvekdc</name>
<age>45</age>
<tel>99443304221</tel>
</person>
<person sid="2">
<name>vleokde</name>
<age>49</age>
<tel>99530219432</tel>
</person>
</people>
โป ์ฐธ๊ณ
1) SGML(Standard Generalized Markup Language)
SGML ์ ๊ธฐ์ ์ ๋ฌธ์ ๋งํฌ์
์ ์์ฑํ๋ ๊ธฐ๋ฒ์ ์ ๊ณตํ๋ ํ์ค ์ผ๋ฐํ
๋งํฌ์
์ธ์ด๋ก ๋์งํธ ๋ฌธ์๋ฅผ ํ๋ซํผ์ ์๊ด์์ด ์ฌ์ฉํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก
๋ง๋ค์ด์ก์ผ๋ฉฐ, 1986๋
์ ISO-8897 ํ์ค์ผ๋ก ์ ์ ๋์๊ณ ๋ฌธ์์ ๋
ผ๋ฆฌ์
๊ตฌ์กฐ์ ๋ด์ฉ์ ๊ธฐ์ ํ๊ธฐ ์ํ ๋งํฌ์
์ด๋ค.
์ฅ์ : ์์คํ
๊ณผ ํ๋ซํผ์ ๋
๋ฆฝ์ / ์ฌ์ฌ์ฉ์ฑ / ๊ณต๊ฐ ํ์ค
๋จ์ : - ์์ฑ ๊ท์น์ ๋ณต์ก์ฑ์ผ๋ก ์ธํด ์ ๋ฌธ๊ฐ๋ค๋ง์ ์ํ ์ธ์ด
- ๊ด๋ จ ์
๊ณ์ ๋ฒ์ฉ์ ์ธ ์ง์ ๋ฏธ๋น
→ ์ด์ ๊ฐ์ ๋จ์ ์ ์ด๋์ ๋ ํด๊ฒฐํ๊ณ ์ ๋ง๋ค์ด์ง ๋งํฌ์
์ธ์ด๊ฐ
๋ฐ๋ก HTML ์ด๋ค.
2) HTML (Hyper Text Markup Language)
HTML ์ ์น์์ ์ ๋ณด๋ฅผ ํํํ ๋ชฉ์ ์ผ๋ก ์ ์ํ ๋งํฌ์
์ธ์ด๋ก
SGML ํ๊ทธ ์ค ์ผ๋ถ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํด์ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋ ๊ฒ์ด ๋ฐ๋ก HTML ์ด๋ค.
์ด๋ฌํ HTML ์ ์ธํฐ๋ท์ ๋น ๋ฅธ ๋ณด๊ธ๊ณผ ํ์ฅ์ผ๋ก ๊ธ์ฑ์ฅํ์๊ณ
ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋งํฌ์
์ธ์ด์ด๋ค.
์ฅ์ : ์น ์ ๋ณด๋ฅผ ํํํ๋๋ฐ ์์ด์ ๋งค์ฐ ๋ฒ์ฉ์ ์ด๋ค.
๋จ์ : - ์ฌ์ฉํ ์ ์๋ ํ๊ทธ๊ฐ ์ ํ์ ์ด๋ค.
- ๋ฌธ์์ ๋ด์ฉ๊ณผ ์ด๋ฅผ ํ๋ฉด์ ํํํ๊ธฐ ์ํ ์ ๋ณด๋ง ์กด์ฌํ๋ค.
๋ฐ๋ผ์ ํ๊ทธ ๋ด์ ๋ด์ฉ์ด ์ด๋ค ์๋ฏธ์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋์ง ์ ์ ์๋ค.
- ๋ฌธ์์ ํฌํจ๋ ์ ๋ณด ๊ฐ์ ์ฐ๊ด์ฑ์ ํํํ ์ ์๊ณ ,
๊ด๋ จ์๋ ์ ๋ณด๋ฅผ ํ์ํ๊ธฐ ์ด๋ ต๋ค.
- ๋ฌธ์์ ์ ํจ์ฑ์ ๊ฒ์ฆํ๊ธฐ ์ด๋ ต๋ค.
- ์ ์ฒด ๋ฌธ์๋ง ํํํ ์ ์๋ค.
3) XML (Extensible Markup Language)
XML ์ SGML ๊ณผ HTML ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋ ์ธ์ด๋ก
SGML ๋ก๋ถํฐ ์ ๋ณด์ ๊ตฌ์กฐ์ ๊ธฐ์ ๊ณผ ์ ๋ณด ๋ด์ฉ๊ณผ ํ์ ์ ๋ณด๋ฅผ ๋ถ๋ฆฌํ ๊ตฌ์กฐ๋ฅผ ์ด์ด๋ฐ๊ณ
HTML ๋ก๋ถํฐ ์ธํฐ๋ท์ ์ด์ฉ ํ๊ฒฝ์ ์ด์ด ๋ฐ์๋ค.
์ฆ, XML ์ ์น์์ ๊ตฌ์กฐํ๋ ๋ฌธ์๋ฅผ ํํํ๊ณ ์ ์กํ ์ ์๋๋ก ์ค๊ณ๋ ๋งํฌ์
์ธ์ด๋ก
๊ธฐ์กด HTML์ ํ๊ณ์ SGML์ ๋ณต์กํจ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก ์ ์๋ ๋งํฌ์
์ธ์ด๋ก
๋ค์ํ ํํ์ด ๊ฐ๋ฅํ๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ฉฐ ๊ฐ๋จํ๋ค.
๋ํ, ํ๋ซํผ ๋
๋ฆฝ์ ์ด๋ฉฐ, ์น์ ๋ฌผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
HTML์ ์ ํด์ง ํ๊ทธ๋ง์ ์ฌ์ฉํ๊ณ ํ๊ทธ์ ์ซ์๋ ์ ํ์ ๋์ด์
์ฌ์ฉ์ด ํธ๋ฆฌํ๊ธด ํ์ง๋ง ํ๊ทธ๊ฐ ๋ฏธ๋ฆฌ ์ ํด์ ธ์๋ค๋ ๋จ์ ์ด ์๋ค.
์ฆ, ์์๊ฐ๊ฐ์ผ๋ก ๋ณํ๋ ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ ๋ฐ์ดํฐ ํํ์ ๋ํ ์๊ตฌ๋ฅผ ์์ฉํ๊ธฐ ์ํด์๋
ํ๊ทธ๋ ๊ทธ์ ๋ฐ๋ผ ์๋ก์ด ํ๊ทธ๊ฐ ํ์ํ ๋๊ฐ ์๊ธฐ ๋ง๋ จ์ธ๋ฐ
์๋ก์ด ํ๊ทธ๋ฅผ ๋ง๋ค ์ ์๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ ํด์ง ํ๊ทธ๊ฐ ์๋๋ผ ํ์ํ ๋ ๋ง๋ค ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ ์ ์๋ ์๊ตฌ๊ฐ
์ผ์ด๋๊ธฐ ์์ํ๊ณ , ์ด ์๊ตฌ์ ๋ํ ์์ฉ์ด ๋ฐ๋ก XML ์ด๋ค.
๊ฒฐ๊ตญ XML์ SGML(ํ์คํ๋ ์ผ๋ฐ ๋งํฌ์
์ธ์ด)์ด ๊ฐ์ง๊ณ ์๋ ์ฅ์ ์ธ
๋ฌธ์์ ๊ตฌ์กฐ์ ์์ฑ์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์์ผ๋ฉฐ
HTML์ ๋จ์ ์ธ ์ ํด์ง ํ๊ทธ๋ฐ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ํ๊ธฐ ์ํด์ ๋์ค๊ฒ ๋ ๊ฒ์ด๋ค.
โ XML / HTML / SGML ๋น๊ต
HTML SGML XML
----------------------------------------------------------------------------------------------
ํ๊ทธ ๋ด์ฅ๋ DTD ์ ์ / ์ฌ์ฉ์์ ์ ํ๊ทธ ์ฌ์ฉ ์ฌ์ฉ์์ ์ ํ๊ทธ ์ฌ์ฉ
์ฌ์ฉ์ ์ ์ ๋ถ๊ฐ๋ฅ
----------------------------------------------------------------------------------------------
๋ฌธ์ ์ฌ์ฌ์ฉ ๋ถ๊ฐ๋ฅ ๊ฐ๋ฅ ๊ฐ๋ฅ
----------------------------------------------------------------------------------------------
์์ฉ ๋จ์ํ ๋ฌธ์์ ๋ณต์กํ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ฐ SGML ๊ณผ ๋์ผ /
Presentation ๋ฐฉ๋ํ ๋ด์ฉ์ ์๊ตฌํ๋ ์น์์ ์ ๋ณด ๊ตํ
๋ฌธ์
----------------------------------------------------------------------------------------------
๋์ด๋ ์ฌ์ ๋ณต์กํ๊ณ ์ด๋ ค์ ์ค๊ฐ ์ ๋(SGML์ ๋จ์ํ)
----------------------------------------------------------------------------------------------
๊ฒ์ ๊ฒ์ ์ด๋ ค์ ์๋ฃ์ ํํ๊ณผ ๋ด์ฉ์ด SGML ๊ณผ ๋์ผ
(๊ฒ์ ์์ง ํ์) ๋ถ๋ฆฌ๋์ด ์ ํํ ๊ฒ์์ด
๊ฐ๋ฅ
----------------------------------------------------------------------------------------------
์ถ๋ ฅ ๋ฐฉ์ CSS DSSSL XSL
----------------------------------------------------------------------------------------------
๋ฐ์ดํฐ ๊ตํ ๊ตํ์ ๋ถ๊ฐ๋๋ ํํ๋ถ์ ๋ด์ฉ๋ถ๊ฐ SGML ๊ณผ ๋์ผ
์์
๋์ด ๋ฐฉ๋ํจ ๋ถ๋ฆฌ๋์ด ๊ตํ์ด ์ฉ์ดํจ
----------------------------------------------------------------------------------------------
โ XML ์์ฉ ๋ถ์ผ
๋ถ์ผ ๊ธฐ์ ๋ด์ฉ
----------------------------------------------------------------------------------------------
์น/์ธํฐ๋ท CDF ์น ์บ์คํ
(web casting) ์ ์ํ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ ํ๋ ํ์
๋ง์ดํฌ๋ก์ํํธ์ ์กํฐ๋ธ ์ฑ๋์ ์ํ ์ธ์ด
OSD ์ํํธ์จ์ด ๋ฐฐํฌ์ ์ค์น๋ฅผ ์ํ ์ ๋ณด๋ฅผ ๊ธฐ์ ํ๊ธฐ ์ํ ํ์
----------------------------------------------------------------------------------------------
๋ฉํ ๋ฐ์ดํฐ RDF ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ ํ๊ธฐ ์ํ ๋ฒ์ฉ์ ๋ฐ์ดํฐ ๊ธฐ์ ๋ฐฉ๋ฒ
๊ธฐ์กด์ ๋ฉํ ๋ฐ์ดํฐ ๊ธฐ์ ๋ฐฉ๋ฒ์ ๋ชจ๋ ํฌํจ
์ต๊ทผ์๋ ์๋ฉํฑ ์น์ ๊ตฌํํ๊ธฐ ์ํ ๊ธฐ์ ์ธ์ด๋ก ์ฌ์ฉ
MCF ๋ท์ค์ผ์ดํ์์ ์ ์ํ ๋ฉํ ๋ฐ์ดํฐ ๊ธฐ์ ๋ฐฉ๋ฒ
----------------------------------------------------------------------------------------------
๋ฉํฐ๋ฏธ๋์ด SML ๋ฉํฐ๋ฏธ๋์ด ๋ฐ์ดํฐ์ ๋๊ธฐํ๋ฅผ ์ํ ์ธ์ด
/ ๊ทธ๋ํฝ PGML 2D ๊ทธ๋ํฝ ๋ฐ์ดํฐ๋ฅผ ํ
์คํธ ํํ๋ก ํํํ๋ ์ธ์ด
/ ์คํผ์น MusicML ์์
์
๋ณด๋ฅผ ์ํ ์ธ์ด
์
๋ณด์ ์ฐ์ด๋ ๋ค์ํ ๊ธฐํธ๋ฅผ ํ์ํ๊ธฐ ์ํ ์ธ์ด
JSML ๋ฌธ์ํํ ์ ๋ณด๋ฅผ ์คํผ์ปค๋ก ๋ฃ๊ธฐ ์ํด์ SUN ์์ ๋ฐํํ๋
XML ์ดํ๋ฆฌ์ผ์ด์
์ธ์ด
----------------------------------------------------------------------------------------------
๋น์ฆ๋์ค OFX ๊ธ์ต ์ ๋ณด(ํํ ์ ๋ณด)๋ฅผ ๊ตํํ๊ธฐ ์ํ ์ธ์ด
/ ๊ธ์ต ML/EDI ์๋ก ๋ค๋ฅธ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ฅผ
์ ๊ณตํ๊ธฐ ์ํด ์ ์๋ ์ธ์ด
OTP ๊ฑฐ๋์ ๊ด๋ จํ ํ๋กํ ์ฝ ์ ์
ICE ๋น์ฆ๋์ค ์
๊ณ์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ์ค
----------------------------------------------------------------------------------------------
๊ณผํ MathML ์ํ ๊ธฐํธ๋ฅผ ํ์ํ๊ธฐ ์ํ ์ธ์ด
CML ํํ์ ํ๊ธฐ๋ฅผ ์ํ ์ธ์ด
BSML DNA ๊ตฌ์กฐ์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ๊ณ ๋์คํ๋ ์ดํ๊ธฐ ์ํ ์ธ์ด
----------------------------------------------------------------------------------------------
โ ๋งํฌ์
์ธ์ด
- ํ๊ทธ๋ฅผ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ์ธ์ด
- <์์ํ๊ทธ>๋ฐ์ดํฐ</๋ํ๊ทธ> → ์๋ฆฌ๋จผํธ
- HTML ์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ํ๊ทธ์ ์ข
๋ฅ๊ฐ ๋ฏธ๋ฆฌ ์ง์ ๋์ด ์๋ ์ํ์ด๋ค.
<div>, <table>, <br> ํ๊ทธ ๋ฑ์ด ์กด์ฌํ๋ค.
- XML ์ ๋ฐ์ดํฐ ํ์์ ํํํ๋ ์ธ์ด์ด๋ค.
ํ๊ทธ์ ์ข
๋ฅ๋ฅผ ์ฌ์ฉ์ ์ค์ค๋ก ์ ํ, ๊ฒฐ์ ํ๋ค.
<์ด๋ฆ>๋
ธ์ํ</์ด๋ฆ>
<์ ํ>010-1212-3434</์ ํ๋ฒํธ>
โ HTML ๊ณผ XML ๋ฌธ์์ ๋ด์ฉ ๋น๊ต
- ์ด๋ฆ, ์ ํ๋ฒํธ, ์ด๋ฉ์ผ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ณผ์ ์
HTML ๋ฐฉ์์ผ๋ก ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
<table>
<tr>
<td>์ด์ฃผํ</td>
<td>010-1212-3434</td>
<td>ljh@test.com</td>
</tr>
</table>
- XML ๋ฐฉ์์ผ๋ก ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
<memberInfo mid="1">
<name>์ด์ฃผํ</name>
<tel>010-1212-3434</tel>
<email>ljh@test.com</email>
</memberInfo>
โ XML ๋ฌธ์ ์์ฑ์ ๊ธฐ๋ณธ ๊ท์น
- XML ๋ฌธ์ ์๋จ์์ ์ ์ธ๋ถ ์์ฑ
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
- ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ง์
๋ฃจํธ ์๋ฆฌ๋จผํธ์ ์ด๋ฆ์ ์ฌ์ฉ์ ์ค์ค๋ก ๊ฒฐ์
๋๋จธ์ง ๋ชจ๋ ์๋ฆฌ๋จผํธ๋ ๋ฃจํธ ์๋ฆฌ๋จผํธ ํ์์๋ง ์กด์ฌํ ์ ์๋ค.
<?xml version="1.0" encoding="UTF-8"?>
<๋ฃจํธ>
</๋ฃจํธ>
- ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ฅํ ๋ ํ์ฅ์ ใ.xmlใ์ฌ์ฉ.
- ์์ ํ๊ทธ์ ๋ ํ๊ทธ๋ฅผ ์ง์ ๋ง์ถ์ด ์ฌ์ฉ.
- ํ๊ทธ ๊ฐ์ ํฌํจ ๊ด๊ณ๋ฅผ ์ด๋ฃจ์ด์ผ ํ๋ค.
(์ฆ, ๋ถ๋ชจ ์์ ๊ด๊ณ ์ฑ๋ฆฝ)
- ํ๊ทธ์๋ ์์ฑ ํํ์ด ๊ฐ๋ฅํ๋ค.
(ใ์์ฑ="๊ฐ"ใํํ๋ก ํ๊ธฐํ๋ค.)
โ โ โ XML DTD(Document Type Definition).txt โ โ โ
โ โ โ XML DTD(Document Type Definition) โ โ โ
โ ๊ฐ์
XML ๋ฌธ์์ ์๋ฆฌ๋จผํธ, ์์ฑ์ ๋ํ ๊ตฌ์กฐ(structure)๋ฅผ ํํํ ๋ฌธ์.
DTD(Document Type Definition)๋ ๋ฌธ์์ ํํ๋ฅผ ์ ์ํ๋ ๊ฒ์ผ๋ก
XML ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ๋ช
์์ ์ผ๋ก ์ ์ธํ๋ ์ญํ ์ ํ๋ฉฐ
XML ๋ฌธ์๊ฐ ์ ๋ง๋ค์ด์ง ์ ์ํ(valid) ๋ฌธ์์ธ์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฌธ์์ด๋ค.
๋ฐ๋ผ์ DTD ๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ์์์ ๋ด์ฉ, ์์ฑ๊ณผ ์์ฑ์ ๋ด์ฉ
๊ทธ๋ฆฌ๊ณ ์์์ ์์๋ ๋ฐ๋ณต์ฑ, ํ์์ฌ๋ถ ๋ฑ์ ๋ฏธ๋ฆฌ ์ ํด๋๊ณ XML ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ๋๋ฉด XML ๋ฌธ์๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ์ ๋ฏธ๋ฆฌ ์๋ชป๋ ๋ฌธ์๋ฅผ ์์ฑํ๋ ์ค์๋ฅผ
์ค์ผ ์ ์๊ฒ ๋๋ค.
โป ์ ํจํ(valid)XML
์ ํจํ(valid) XML ์ well-formed XML ์ ๋ณด๋ค ์๊ฒฉํ๊ฒ ๊ฒ์ฆํ ๋ฌธ์
--------------- -------------
1์ฐจ ๊ฒ์ฆ 1์ฐจ ๊ฒ์ฆ
๊ธฐ๋ณธ์ ์ธ ์กฐ๊ฑด์ผ๋ก ๋ชจ๋ well-formed ์ด์ด์ผ ํ๋ฉฐ,
์ด์ ์ถ๊ฐํ์ฌ DTD ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์ด์ ๋ฐ๋ผ ๊ฒ์ฆ๋ ๋ฌธ์๋ฅผ ์๋ฏธํ๋ค.
โ DTD ์ํ
<!DOCTYPE ๋ฃจํธ์๋ฆฌ๋จผํธ []>
→
<!DOCTYPE ๋ฃจํธ ์๋ฆฌ๋จผํธ
[
<!ELEMENT ๋ฃจํธ์๋ฆฌ๋จผํธ (1์ฐจํ์์๋ฆฌ๋จผํธ ๋ชฉ๋ก)>
<!ELEMENT 1์ฐจํ์์๋ฆฌ๋จผํธ (2์ฐจํ์์๋ฆฌ๋จผํธ ๋ชฉ๋ก)>
<!ELEMENT 2์ฐจํ์์๋ฆฌ๋จผํธ (#PCDATA)>
<!ATTLIST 2์ฐจํ์์๋ฆฌ๋จผํธ
์์ฑ์ด๋ฆ ์์ฑ๊ฐ ํ์์ฌ๋ถ
...>
]>
==> XML ๋ฌธ์์ ๋ํ ์ค๊ณ ๊ณผ์
โ DTD ์ XML ๋ฌธ์์ ๊ฒฐํฉ
- ๋ณ๋์ ใ.dtdใํ์ผ์ ์์ฑํ ํ XML ๋ฌธ์์ ์ฐ๊ฒฐ
// note.dtd
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
// note.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "note.did">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend</body>
</note>
- XML ๋ฌธ์ ๋ด๋ถ์ ์ฝ์
// note.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend</body>
</note>
[XmlApp01]
xmlTest01.xml
<?xml version="1.0" encoding="UTF-8"?>
<xmlTest01>
<!-- ์ ์ธ๋ถ์ ๋ฃจํธ๋ง ์กด์ฌํ๋ XML ๋ฌธ์ ์์ฑ -->
<!-- ๋ฃจํธ ์๋ฆฌ๋จผํธ(xmlTest01)๋ ์ฌ์ฉ์๊ฐ ๊ฒฐ์ -->
<!-- XML ์ ํ๋ก๊ทธ๋จ์ด ์๋๊ณ , ๋ฐ์ดํฐ ํํ ๋ฌธ์์ผ ๋ฟ์ด๋ค. -->
<!-- ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ํ์ ์๋ฆฌ๋จผํธ ์ถ๊ฐ - ๋งํฌ์
์ธ์ด ๊ธฐ๋ณธ ํ์ -->
</xmlTest01>
memberList.xml
<?xml version="1.0" encoding="UTF-8"?>
<memberList>
<!-- ๋ฃจํธ ์๋ฆฌ๋จผํธ๋ ํ๋ -->
<!-- ๋ฃจํธ ์๋ฆฌ๋จผํธ์ ์ด๋ฆ์ ใ~~~.xmlใ ํ์ผ ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ ์ฌ์ฉ (๊ถ์ฅ) -->
<!-- ๋ณต์(๋ค์)์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๊ฒฝ์ฐ ์ค๊ฐ์ ์ ์ํ ๋ถ๋ชจ ํ๊ทธ ์์ฑ -->
<!-- ์๋ฆฌ๋จผํธ ํ์์๋ ์๋ฆฌ๋จผํธ(๋๋ ๋ฐ์ดํฐ)๋ง ๊ตฌ์ฑ -->
<!-- ํน์๋ฌธ์๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ ใCDATA์น์
ใ์ผ๋ก ์ฒ๋ฆฌ -->
<!-- ์์ ํ๊ทธ์ ๋ ํ๊ทธ์ ์ด๋ฆ์ด ๋์๋ฌธ์๊น์ง ์๋ฒฝํ๊ฒ ์ผ์น -->
<!-- ๋ชจ๋ ํ๊ทธ์ ์ด๊ณ ๋ซ๋ ์์๊ฐ ์ ํํ๊ฒ ์ฒ๋ฆฌ -->
<!-- ์์ฑ์ ์์ฑ๊ฐ์ด ใ""ใ๋ก ๊ตฌ์ฑ -->
<!-- โป ์ค์ค๋ก (๋ณธ์ธ)์ ์ ๋ณด๋ฅผ ํํํ ์ ์๋ ๋ฌธ์ ์์ฑ -->
<!-- (+์ฐ๋ฆฌ ํ์๋ค) -->
<memberInfo mid="1">
<name>๋
ธ์ํ</name>
<telephone><![CDATA[010-1234-4567]]></telephone>
<curriculum>
<sub>JAVA SE</sub>
<sub>ORACLE</sub>
<sub><![CDATA[Servlet&JSP]]></sub>
</curriculum>
<zipCode>01234</zipCode>
<addr>์์ธ์ ๋งํฌ๊ตฌ ์๋์ปต๋ถ๋ก 150</addr>
</memberInfo>
</memberList>
memList.xml
<?xml version="1.0" encoding="UTF-8"?>
<memList>
<memberInfo mid="2">
<name>๋ฐ๊ฐ์</name>
<tel><![CDATA[010-9999-9999]]></tel>
<age>28</age>
<nationality>KOR</nationality>
<addr>๋ํ๋ฏผ๊ตญ</addr>
<ssn><![CDATA[951118-2******]]></ssn>
</memberInfo>
<memberInfo mid="3">
<name>์ ํ์ฑ</name>
<tel><![CDATA[010-9****-****]]></tel>
<age>23</age>
<nationality>JAPAN</nationality>
<addr>๊ฐํญ์ง</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>์๊ธฐ</hobby>
</memberInfo>
</memList>
[XmlApp02]
memberList.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD ์ถ๊ฐ -->
<!DOCTYPE memberList
[
<!ELEMENT memberList (memberInfo+)>
<!ELEMENT memberInfo (name, telephone, curriculumn?, zipCode, addr)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
<!ELEMENT curriculumn (sub+)>
<!ELEMENT sub (#PCDATA)>
<!ELEMENT zipCode (#PCDATA)>
<!ELEMENT addr (#PCDATA)>
<!ATTLIST memberInfo mid CDATA #IMPLIED>
]>
<!-- #REQUIRED : ์ด ์์ฑ์ ๋ฐ๋์ ๋ช
์๋์ด์ผ ํ๋ค. -->
<!-- #IMPLED : ์ด ์์ฑ์ ๋ช
์๋๊ธฐ๋ ํ๊ณ , ๋ช
์๋์ง ์๊ธฐ๋ ํ๋ค. -->
<!-- #FIXED ํน์ ๊ฐ : ์ด ์์ฑ์ ํน์ ๊ฐ์ผ๋ก ๊ณ ์ ๋์ด ์ฌ์ฉ๋๋ค. -->
<memberList>
<memberInfo mid="1">
<name>๋
ธ์ํ</name>
<telephone><![CDATA[010-1234-4567]]></telephone>
<curriculumn>
<sub>JAVA SE</sub>
<sub>ORACLE</sub>
<sub><![CDATA[Servlet&JSP]]></sub>
</curriculumn>
<zipCode>01234</zipCode>
<addr>์์ธ์ ๋งํฌ๊ตฌ ์๋์ปต๋ถ๋ก 150</addr>
</memberInfo>
<memberInfo mid="2">
<name>๊น๋ฏผ์ง</name>
<telephone><![CDATA[010-9987-8876]]></telephone>
<zipCode>01285</zipCode>
<addr>์์ธ์ ์ํ๊ตฌ ํต์ผ๋ก 20</addr>
</memberInfo>
</memberList>
memList.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE memList [
<!ELEMENT memList (memberInfo+)>
<!ELEMENT memberInfo (name, tel?, age, nationality, addr, ssn, hobby)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT nationality (#PCDATA)>
<!ELEMENT addr (#PCDATA)>
<!ELEMENT ssn (#PCDATA)>
<!ELEMENT hobby (#PCDATA)>
<!ATTLIST memberInfo mid CDATA #IMPLIED>
]>
<memList>
<!-- memList.xml -->
<memberInfo mid="2">
<name>๋ฐ๊ฐ์</name>
<tel><![CDATA[010-9999-9999]]></tel>
<age>28</age>
<nationality>KOR</nationality>
<addr>๋ํ๋ฏผ๊ตญ</addr>
<ssn><![CDATA[951118-2******]]></ssn>
<hobby>๋จน๊ธฐ</hobby>
</memberInfo>
<memberInfo mid="3">
<name>์ ํ์ฑ</name>
<tel><![CDATA[010-9****-****]]></tel>
<age>23</age>
<nationality>JAPAN</nationality>
<addr>๋์ฟ</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>์๊ธฐ</hobby>
</memberInfo>
<memberInfo>
<name>๊น๊ฒฝํ</name>
<age>23</age>
<nationality>THAI</nationality>
<addr>๋ฐฉ์ฝ</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>๋๊ธฐ</hobby>
</memberInfo>
<memberInfo mid="4">
<name>๊น๋ฏผ์ง</name>
<age>24</age>
<nationality>USA</nationality>
<addr>๋ด์</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>์ป๊ธฐ</hobby>
</memberInfo>
<memberInfo>
<name>๋
ธ์ํ</name>
<age>23</age>
<nationality>CHINA</nationality>
<addr>์ฐ๋ณ</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>๋ฐ๊ธฐ</hobby>
</memberInfo>
</memList>
[XmlApp03]
โ ์ค์ต xmlํ์ผ
- koreanMajorCities.xml
<?xml version="1.0" encoding="UTF-8"?>
<koreanMajorCities>
<city>
<name>์์ธ</name>
<class>ํน๋ณ์</class>
</city>
<city>
<name>๋ถ์ฐ</name>
<class>๊ด์ญ์</class>
</city>
<city>
<name>์ธ์ฒ</name>
<class>๊ด์ญ์</class>
</city>
<city>
<name>๋์ </name>
<class>๊ด์ญ์</class>
</city>
<city>
<name>๊ด์ฃผ</name>
<class>๊ด์ญ์</class>
</city>
<city>
<name>์ธ์ฐ</name>
<class>๊ด์ญ์</class>
</city>
<city>
<name>์์</name>
<class>์</class>
</city>
<city>
<name>์ฒญ์ฃผ</name>
<class>์</class>
</city>
<city>
<name>๋ชฉํฌ</name>
<class>์</class>
</city>
</koreanMajorCities>
XmlApp03.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>XmlApp03.html</title>
<style type="text/css">
table, th, td
{
border: 1px solid gray;
border-collapse: collapse;
}
</style>
<script type="text/javascript">
function loadDoc()
{
// alert("ํจ์ ํธ์ถ ํ์ธ");
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function()
{
if (this.status==200 && this.readyState==4)
{
// ์
๋ฌด ์ฒ๋ฆฌ
displayData(xmlHttp);
}
};
xmlHttp.open("GET", "koreanMajorCities.xml", "true");
xmlHttp.send("");
}
// ์
๋ฌด์ฒ๋ฆฌ
function displayData(xmlHttp)
{
var xmlObj, cityList, result, idx;
xmlObj = xmlHttp.responseXML; //-- ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ XML DOM ๊ฐ์ฒด๋ก ๋ฐํ
result = "<table><tr><th>๋์ ์ด๋ฆ</th><th>ํ์ ๊ตฌ์ญ</th></tr>";
cityList = xmlObj.getElementsByTagName("city");
for (idx = 0; idx < cityList.length; idx++)
{
result += "<tr><td>"
+ cityList[idx].getElementsByTagName("name")[0].childNodes[0].nodeValue
+ "</td><td>"
+ cityList[idx].getElementsByTagName("class")[0].childNodes[0].nodeValue
+ "</td></tr>";
}
result += "</table>";
document.getElementById("text").innerHTML = result;
}
</script>
</head>
<body>
<div>
<h1>HTML๋ก๋ถํฐ ๋ฐ์ดํฐ ๋ถ๋ฆฌ(๊ด์ฐฐ)</h1>
<hr>
</div>
<div>
<button type="button" onclick="loadDoc()">XML ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ~!!!</button>
<p id="text"></p>
</div>
</body>
</html>
[XmlApp04]
โ ์ค์ต xml ํ์ผ
- breakfast_menu.xml
<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
<description>Two of our famous Belgian Waffles with plenty of real maple syrup</description>
<calories>650</calories>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
<description>Light Belgian waffles covered with strawberries and whipped cream</description>
<calories>900</calories>
</food>
<food>
<name>Berry-Berry Belgian Waffles</name>
<price>$8.95</price>
<description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>
<calories>900</calories>
</food>
<food>
<name>French Toast</name>
<price>$4.50</price>
<description>Thick slices made from our homemade sourdough bread</description>
<calories>600</calories>
</food>
<food>
<name>Homestyle Breakfast</name>
<price>$6.95</price>
<description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</description>
<calories>950</calories>
</food>
</breakfast_menu>
- memberList.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- DTD ์ถ๊ฐ -->
<!DOCTYPE memberList
[
<!ELEMENT memberList (memberInfo+)>
<!ELEMENT memberInfo (name, telephone, curriculumn?, zipCode, addr)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
<!ELEMENT curriculumn (sub+)>
<!ELEMENT sub (#PCDATA)>
<!ELEMENT zipCode (#PCDATA)>
<!ELEMENT addr (#PCDATA)>
<!ATTLIST memberInfo mid CDATA #IMPLIED>
]>
<!-- #REQUIRED : ์ด ์์ฑ์ ๋ฐ๋์ ๋ช
์๋์ด์ผ ํ๋ค. -->
<!-- #IMPLED : ์ด ์์ฑ์ ๋ช
์๋๊ธฐ๋ ํ๊ณ , ๋ช
์๋์ง ์๊ธฐ๋ ํ๋ค. -->
<!-- #FIXED ํน์ ๊ฐ : ์ด ์์ฑ์ ํน์ ๊ฐ์ผ๋ก ๊ณ ์ ๋์ด ์ฌ์ฉ๋๋ค. -->
<memberList>
<memberInfo mid="1">
<name>๋
ธ์ํ</name>
<telephone><![CDATA[010-1234-4567]]></telephone>
<curriculumn>
<sub>JAVA SE</sub>
<sub>ORACLE</sub>
<sub><![CDATA[Servlet&JSP]]></sub>
</curriculumn>
<zipCode>01234</zipCode>
<addr>์์ธ์ ๋งํฌ๊ตฌ ์๋์ปต๋ถ๋ก 150</addr>
</memberInfo>
<memberInfo mid="2">
<name>๊น๋ฏผ์ง</name>
<telephone><![CDATA[010-9987-8876]]></telephone>
<zipCode>01285</zipCode>
<addr>์์ธ์ ์ํ๊ตฌ ํต์ผ๋ก 20</addr>
</memberInfo>
</memberList>
- memList.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE memList [
<!ELEMENT memList (memberInfo+)>
<!ELEMENT memberInfo (name, tel, age, nationality, addr, ssn, hobby?, food?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT nationality (#PCDATA)>
<!ELEMENT addr (#PCDATA)>
<!ELEMENT ssn (#PCDATA)>
<!ELEMENT hobby (#PCDATA)>
<!ELEMENT food (foodName+)>
<!ELEMENT foodName (#PCDATA)>
<!ATTLIST memberInfo mid CDATA #REQUIRED>
]>
<memList>
<!-- memList.xml -->
<memberInfo mid="1">
<name>๋ฐ๊ฐ์</name>
<tel><![CDATA[010-9999-9999]]></tel>
<age>28</age>
<nationality>KOR</nationality>
<addr>๋ํ๋ฏผ๊ตญ</addr>
<ssn><![CDATA[951118-2******]]></ssn>
<hobby>๋จน๊ธฐ</hobby>
<food>
<foodName>ํ๋ฒ๊ฑฐ</foodName>
<foodName>์นํจ</foodName>
<foodName>ํผ์</foodName>
</food>
</memberInfo>
<memberInfo mid="2">
<name>์ ํ์ฑ</name>
<tel><![CDATA[010-9****-****]]></tel>
<age>23</age>
<nationality>JAPAN</nationality>
<addr>๋์ฟ</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>์๊ธฐ</hobby>
<food>
<foodName>์ด๋ฐฅ</foodName>
<foodName>๋ผ๋ฉ</foodName>
<foodName>๋๊น์ค</foodName>
</food>
</memberInfo>
<memberInfo mid="3">
<name>๊น๋ฏผ์ง</name>
<tel><![CDATA[010-3****-****]]></tel>
<age>24</age>
<nationality>USA</nationality>
<addr>๋ด์</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<food>
<foodName>ํ์์ก</foodName>
<foodName>์ง์ฅ๋ฉด</foodName>
<foodName>์งฌ๋ฝ</foodName>
</food>
</memberInfo>
<memberInfo mid="4">
<name>๊น๊ฒฝํ</name>
<tel><![CDATA[010-4****-****]]></tel>
<age>23</age>
<nationality>THAI</nationality>
<addr>๋ฐฉ์ฝ</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>๋๊ธฐ</hobby>
</memberInfo>
<memberInfo mid="5">
<name>๋
ธ์ํ</name>
<tel><![CDATA[010-5****-****]]></tel>
<age>23</age>
<nationality>CHINA</nationality>
<addr>์ฐ๋ณ</addr>
<ssn>์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ</ssn>
<hobby>๋ฐ๊ธฐ</hobby>
</memberInfo>
</memList>
- VEHICLE.xml
<?xml version="1.0" encoding="utf-8"?>
<VEHICLES>
<LAST_INVENTORY_NUMBER>11</LAST_INVENTORY_NUMBER>
<VEHICLE>
<INVENTORY_NUMBER>1</INVENTORY_NUMBER>
<MAKE>Dodge</MAKE>
<MODEL>Durango</MODEL>
<YEAR>1998</YEAR>
<PICTURE>DodgeDurango.jpg</PICTURE>
<STYLE>Sport Utility</STYLE>
<DOORS>4</DOORS>
<PRICE>18000</PRICE>
<MILEAGE>32000</MILEAGE>
<OPTIONS>
<Power_Locks>Yes</Power_Locks>
<Power_Window>Yes</Power_Window>
<Stereo>Radio/Cassette/CD</Stereo>
<Air_Conditioning>Yes</Air_Conditioning>
<Automatic>Yes</Automatic>
<Four_Wheel_Drive>Full/Partial</Four_Wheel_Drive>
<Note>Very clean</Note>
</OPTIONS>
<OWNER>
<NAME>Douglas Briggs </NAME>
<EMAIL>DBriggs@aDomain.Com</EMAIL>
<PHONE>781 781 7811</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>2</INVENTORY_NUMBER>
<MAKE>Honda</MAKE>
<MODEL>Civic</MODEL>
<YEAR>1997</YEAR>
<PICTURE>HondaCivic.jpg</PICTURE>
<PRICE_YEN>20000000</PRICE_YEN>
<STYLE>Sedan</STYLE>
<DOORS>4</DOORS>
<PRICE>8000</PRICE>
<MILEAGE>56000</MILEAGE>
<OPTIONS>
<Power_Locks>Yes</Power_Locks>
<Power_Window>Yes</Power_Window>
<Stereo>Radio/Cassette</Stereo>
<Automatic>Yes</Automatic>
<Note>Like New</Note>
</OPTIONS>
<OWNER>
<NAME>Israel Hodgson </NAME>
<EMAIL>IHodgson@aDomain.Com</EMAIL>
<PHONE>781 781 782</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>3</INVENTORY_NUMBER>
<MAKE>Dodge</MAKE>
<MODEL>Neon</MODEL>
<YEAR>1996</YEAR>
<PICTURE>DodgeNeon.jpg</PICTURE>
<STYLE>Sedan</STYLE>
<DOORS>4</DOORS>
<PRICE>7000</PRICE>
<MILEAGE>55000</MILEAGE>
<OPTIONS>
<Stereo>Radio/Cassette</Stereo>
<Automatic>Yes</Automatic>
<Note>Need minor body works</Note>
</OPTIONS>
<OWNER>
<NAME>Arthur Shin </NAME>
<EMAIL>IHodgson@aDomain.Com</EMAIL>
<PHONE>781 781 782</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>4</INVENTORY_NUMBER>
<MAKE>Ferrari</MAKE>
<MODEL>F355</MODEL>
<YEAR>1995</YEAR>
<PICTURE>FerrariF355.jpg</PICTURE>
<STYLE>Sport</STYLE>
<DOORS>2</DOORS>
<PRICE>45000</PRICE>
<MILEAGE>63000</MILEAGE>
<OPTIONS>
<Power_Locks>Yes</Power_Locks>
<Power_Window>Yes</Power_Window>
<Stereo>Radio/Cassette/CD</Stereo>
<Air_Conditioning>Yes</Air_Conditioning>
<Note>Luxury car</Note>
</OPTIONS>
<OWNER>
<NAME>Jungchul Frye</NAME>
<EMAIL>JFrye@aDomain.Com</EMAIL>
<PHONE>781 781 782</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>5</INVENTORY_NUMBER>
<MAKE>BMW</MAKE>
<MODEL>3 Series</MODEL>
<YEAR>1998</YEAR>
<PICTURE>BMWSeries3.jpg</PICTURE>
<STYLE>Sedan</STYLE>
<DOORS>4</DOORS>
<PRICE>40000</PRICE>
<MILEAGE>12000</MILEAGE>
<OPTIONS>
<Power_Locks>Yes</Power_Locks>
<Power_Window>Yes</Power_Window>
<Interiors>Leather</Interiors>
<Stereo>Radio/Cassette/CD</Stereo>
<Air_Conditioning>Yes</Air_Conditioning>
<Note>Pre-owned</Note>
</OPTIONS>
<OWNER>
<NAME>Bill Pease</NAME>
<EMAIL>BPease@aDomain.Com</EMAIL>
<PHONE>781 781 782</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>6</INVENTORY_NUMBER>
<MAKE>BMW</MAKE>
<MODEL>Z3</MODEL>
<YEAR>1998</YEAR>
<PICTURE>BMWZ3.jpg</PICTURE>
<STYLE>Convertible</STYLE>
<DOORS>2</DOORS>
<PRICE>33000</PRICE>
<MILEAGE>24000</MILEAGE>
<OPTIONS>
<Cover_Material>Plastic</Cover_Material>
<Power_Locks>Yes</Power_Locks>
<Power_Window>Yes</Power_Window>
<Alarm>Yes</Alarm>
<Interiors>Fabric</Interiors>
<Stereo>Radio/Cassette/CD</Stereo>
<Air_Conditioning>Yes</Air_Conditioning>
<Note>Pre-owned, very clean</Note>
</OPTIONS>
<OWNER>
<NAME>Scott Tufo</NAME>
<EMAIL>STufo@aDomain.Com</EMAIL>
<PHONE>781 781 783</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>7</INVENTORY_NUMBER>
<MAKE>Dodge</MAKE>
<MODEL>RAM</MODEL>
<YEAR>1997</YEAR>
<PICTURE>DodgeRAM1500.jpg</PICTURE>
<STYLE>Truck</STYLE>
<DOORS>2</DOORS>
<PRICE>22000</PRICE>
<MILEAGE>45000</MILEAGE>
<OPTIONS>
<Stereo>Radio</Stereo>
<Max_Load>1500</Max_Load>
<Note>Heavy duty Vehicle</Note>
</OPTIONS>
<OWNER>
<NAME>Dealer</NAME>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>8</INVENTORY_NUMBER>
<MAKE>Honda</MAKE>
<MODEL>Accord</MODEL>
<YEAR>1995</YEAR>
<PICTURE>HondaAccord.jpg</PICTURE>
<PRICE_YEN>25000000</PRICE_YEN>
<STYLE>Sedan</STYLE>
<DOORS>4</DOORS>
<PRICE>8500</PRICE>
<MILEAGE>145000</MILEAGE>
<OPTIONS>
<Power_Locks>Yes</Power_Locks>
<Stereo>Radio/Cassette</Stereo>
<Automatic>Yes</Automatic>
</OPTIONS>
<OWNER>
<NAME>Bob Johnson</NAME>
<PHONE>781 781 783</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>9</INVENTORY_NUMBER>
<MAKE>Dodge</MAKE>
<MODEL>RAM 2500</MODEL>
<YEAR>1996</YEAR>
<PICTURE>DodgeRAM2500.jpg</PICTURE>
<STYLE>Truck</STYLE>
<DOORS>2</DOORS>
<PRICE>25000</PRICE>
<MILEAGE>23000</MILEAGE>
<OPTIONS>
<Stereo>Radio/Cassette</Stereo>
<Max_Load>2500</Max_Load>
<Note>Heavy duty truck</Note>
</OPTIONS>
<OWNER>
<NAME>Pia Kinnear</NAME>
<EMAIL>PKinnearo@aDomain.Com</EMAIL>
<PHONE>781 781 784</PHONE>
</OWNER>
</VEHICLE>
<VEHICLE>
<INVENTORY_NUMBER>10</INVENTORY_NUMBER>
<MAKE>Ford</MAKE>
<MODEL>Explorer</MODEL>
<YEAR>1996</YEAR>
<PICTURE>FordExplorer.jpg</PICTURE>
<STYLE>Sport Utility</STYLE>
<DOORS>4</DOORS>
<PRICE>18000</PRICE>
<MILEAGE>105000</MILEAGE>
<OPTIONS>
<Power_Locks>Yes</Power_Locks>
<Stereo>Radio/Cassette</Stereo>
<Automatic>Yes</Automatic>
<Interiors>Fabric</Interiors>
<Air_Conditioning>Yes</Air_Conditioning>
<Note>Pre-owned, very clean</Note>
</OPTIONS>
<OWNER>
<NAME>Shawn Denoncour</NAME>
<EMAIL>SDenoncour@aDomain.Com</EMAIL>
<PHONE>781 781 785</PHONE>
</OWNER>
</VEHICLE>
</VEHICLES>
xmlTest01.xml
<?xml version="1.0" encoding="UTF-8"?>
<xmlTest01>
<!-- ์ ์ธ๋ถ์ ๋ฃจํธ๋ง ์กด์ฌํ๋ XML ๋ฌธ์ ์์ฑ -->
<!-- ๋ฃจํธ ์๋ฆฌ๋จผํธ(xmlTest01)๋ ์ฌ์ฉ์๊ฐ ๊ฒฐ์ -->
<!-- XML ์ ํ๋ก๊ทธ๋จ์ด ์๋๊ณ , ๋ฐ์ดํฐ ํํ ๋ฌธ์์ผ ๋ฟ์ด๋ค. -->
<!-- ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ํ์ ์๋ฆฌ๋จผํธ ์ถ๊ฐ - ๋งํฌ์
์ธ์ด ๊ธฐ๋ณธ ํ์ -->
</xmlTest01>
XmlDomTest01.java
/*===============================================
XmlDomTest01.java
- ์ฝ์ ๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ๋ก์ปฌ(local) XML ์ฝ์ด๋ด๊ธฐ
================================================*/
package com.test;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomTest01
{
public static void main(String[] args)
{
// 1. XML ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ → XML DOM ํ์ฑ
// 2. ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
// 3. ํน์ ํ์ ์๋ฆฌ๋จผํธ ์ ๊ทผ → ์์น, ์ด๋ฆ ๋ฑ์ ๊ธฐ์ค์ผ๋ก ์ ๊ทผ
// 4. ํ
์คํธ ๋
ธ๋(์์ฑ ๋
ธ๋) ์ ๊ทผ → ๋ฐ์ดํฐ ํ๋
// 5. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ(์ถ๋ ฅ)
try
{
// XML ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋์ํฌ ์ค๋น
// → XML DOM ํ์ฑ์ ์ํ ์ค๋น
// (์ด๋ฅผ ์ํด ํ์ํ ๋ฆฌ์์ค ๊ตฌ์ฑ)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//--
Document xmlObj = null;
// XML ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ → XML DOM ํ์ฑ
String url = "VEHICLES.xml";
xmlObj = builder.parse(url);
// ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
Element root = xmlObj.getDocumentElement();
// ํ
์คํธ
//System.out.println(root.getNodeName());
//--==>> VEHICLES
// ํน์ ํ์ ์๋ฆฌ๋จผํธ ์ ๊ทผ → ์์น, ์ด๋ฆ ๋ฑ์ ๊ธฐ์ค์ผ๋ก ์ ๊ทผ
// ใgetElementsByTagName()ใ ๋ฉ์๋๋ ํ๊ทธ์ ์ด๋ฆ์ ๊ฐ์ง๊ณ
// ํ์ ์์ (์์) ๋
ธ๋์ ์ ๊ทผํ ์ ์๋๋ก ํด ์ฃผ๋ ๋ฉ์๋
NodeList vehicleNodeList = root.getElementsByTagName("VEHICLE"); // 's' ํ์ธ~
// โป NodeList ๊ฐ์ฒด์ ๋ค์ด์๋ Node์ ๊ฐฏ์๋ฅผ
// ใgetLength()ใ๋ฉ์๋๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
// ํ
์คํธ
//System.out.println(vehicleNodeList.getLength());
//--==>> 10
for (int i=0; i<vehicleNodeList.getLength(); i++) // 10 ๋ฒ ๋ฐ๋ณต (i : 0 ~ 9 )
{
// ใitem()ใ ๋ฉ์๋๋ ํ๋ผ๋ฏธํฐ์ ํด๋นํ๋ ์ธ๋ฑ์ค์ ์์นํ
// ๋
ธ๋์ ์ ๊ทผํ๋๋ก ์ง์ํ๋ ๋ฉ์๋
Node vehicleNode = vehicleNodeList.item(i); // i → 0 ~ 9
// ์บ์คํธ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ
// Node ๊ฐ์ฒด๋ฅผ Element ๊ฐ์ฒด๋ก ๋ณํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
// Node ๋ ์์ ๊ฐ์ฒด(์๋ฃํ)
// , Element ๋ ํ์ ๊ฐ์ฒด(์๋ฃํ)๋ก ๋ค๋ฃจ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Element vehicleElement = (Element)vehicleNode;
/*
NodeList makeNodeList = vehicleElement.getElementsByTagName("MAKE");
Node makeNode = makeNodeList.item(0);
Element makeElement = (Element)makeNode;
System.out.printf("%s : %s%n"
, makeElement.getNodeName()
, makeElement.getTextContent());
NodeList modelNodeList = vehicleElement.getElementsByTagName("MODEL");
Node modelNode = modelNodeList.item(0);
Element modelElement = (Element)modelNode;
System.out.printf("%s : %s%n"
, modelElement.getNodeName(), modelElement.getTextContent());
*/
// ํน์ ์๋ฆฌ๋จผํธ์ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ์ป๋
// ์ฌ์ฉ์ ์ ์ ๋ฉ์๋ ใgetTextใ ํธ์ถ
System.out.printf("%s %s %s %s %s%n"
, getText(vehicleElement, "MAKE")
, getText(vehicleElement, "MODEL")
, getText(vehicleElement, "YEAR")
, getText(vehicleElement, "PICTURE")
, getText(vehicleElement, "STYLE"));
}
} catch (Exception e)
{
System.out.println(e.toString());
}
}// end main
// ํน์ ์๋ฆฌ๋จผํธ์ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ์ป์ด๋ด๋ ๋ฉ์๋ ์ ์
private static String getText(Element parent, String tagName)
{
// ๋ฐํํ ๊ฒฐ๊ณผ๊ฐ
String result = "";
// ํน์ ํ๊ทธ์ ์ด๋ฆ์ ๊ฐ์ง ๊ฐ์ฒด์ ์ฒซ ๋ฒ์งธ ์์ ๋
ธ๋๋ฅผ ์ป์ด์จ ๋ค์
Node node = parent.getElementsByTagName(tagName).item(0);
Element element = (Element)node;
// ํน์ ์๋ฆฌ๋จผํธ์ ์์ ๋
ธํธ(Text Node)์ ๊ฐ(nodevalue) ๋ฅผ ์ป์ด์ฌ ์ ์๋๋ก ์ฒ๋ฆฌ
result = element.getChildNodes().item(0).getNodeValue();
// ์ต์ข
๊ฒฐ๊ณผ๊ฐ ๋ฐํ
return result;
}
}
//--==>> ์คํ ๊ฒฐ๊ณผ
/*
Dodge Durango 1998 DodgeDurango.jpg Sport Utility
Honda Civic 1997 HondaCivic.jpg Sedan
Dodge Neon 1996 DodgeNeon.jpg Sedan
Ferrari F355 1995 FerrariF355.jpg Sport
BMW 3 Series 1998 BMWSeries3.jpg Sedan
BMW Z3 1998 BMWZ3.jpg Convertible
Dodge RAM 1997 DodgeRAM1500.jpg Truck
Honda Accord 1995 HondaAccord.jpg Sedan
Dodge RAM 2500 1996 DodgeRAM2500.jpg Truck
Ford Explorer 1996 FordExplorer.jpg Sport Utility
*/
XmlDomTest02.java
/*=============================================
XmlDomTest02.java
- ์ฝ์๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ๋ก์ปฌ(local) XML ์ฝ์ด๋ด๊ธฐ
(memberList.xml)
============================================== */
/*
๋
ธ์ํ 010-1234-4567
๊น๋ฏผ์ง 010-9987-8876
*/
package com.test;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomTest02
{
public static void main(String[] args)
{
// 1. XML ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋
// → XML DOM ํ์ฑ
// 2. ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
// 3. ํน์ ํ์ ์๋ฆฌ๋จผํธ ์ ๊ทผ
// → ์์น, ์ด๋ฆ ๋ฑ์ ๊ธฐ์ค์ผ๋ก ์ ๊ทผ
// 4. ํ
์คํธ ๋
ธ๋(์์ฑ ๋
ธ๋) ์ ๊ทผ
// → ์ํ๋ ๋ฐ์ดํฐ ์ป์ด๋ด๊ธฐ
// 5. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
// → ํน์ ๋ฐ์ดํฐ ์ถ๋ ฅ
try
{
// XML ํ์ผ(memberList.xml)์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ๊ธฐ ์ํ ์ค๋น
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObj = null;
String url = "memberList.xml";
xmlObj = builder.parse(url);
// ๋ฃจํธ ์๋ฆฌ๋จผํธ ์ ๊ทผ
Element root = xmlObj.getDocumentElement();
// get + documentElement
//-- ๋ฌธ์์ ๋ํ ์๋ฆฌ๋จผํธ(๋ฃจํธ ์๋ฆฌ๋จผํธ)๋ฅผ ์ป์ด๋ด๋ ๊ณผ์
// ์ป์ด๋ธ ๋ฃจํธ ์๋ฆฌ๋จผํธ๋ฅผ ํ์ฉํ์ฌ ํน์ ํ์ ์๋ฆฌ๋จผํธ์ ์ ๊ทผ
NodeList memberNodeList = root.getElementsByTagName("memberInfo");
//-- ์ด ๋ ใgetElementsByTagName()ใ๋ฉ์๋๋
// ํ๊ทธ์ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์์ด๋ ์์ ๋
ธ๋์ ์ ๊ทผ์ ์ํํ๋ ๋ฉ์๋
// -------------------
// (ํน์ ๋
ธ๋)
// โป check~!!!
// XML ์์ ๋ชจ๋ ๋
ธ๋๋ ๋ฃจํธ ์๋ฆฌ๋จผํธ์ ํ์์ ์กด์ฌ~!!!
// ์ด๋ ๊ฒ ์ป์ด๋ธ NodeList ๊ฐ์ฒด์ ํฌํจ๋์ด ์๋ Node ์ ๊ฐฏ์๋ฅผ
// ใgetLength()ใ ๋ฉ์๋๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
// ์ด๋ฅผ ํ์ฉํ์ฌ ๊ฐ๊ฐ์ Node ์ ์ ๊ทผํ๋ ๋ฐ๋ณต์ ํ์๋ฅผ ํน์ ํ ์ ์๋ค.
// ํ
์คํธ
//System.out.println(memberNodeList.getLength());
//--==>> 2
for (int i = 0; i < memberNodeList.getLength(); i++) // i → 0 ~ 1
{
Node memberNode = memberNodeList.item(i);
//-- ใgetElementsByTagName()ใ ๋ฉ์๋๊ฐ ์ด๋ฆ์ ํตํด ๋์์ ํ๋ํ๋ค๋ฉด...
// ใitem()ใ ๋ฉ์๋๋ ์์น(์ธ๋ฑ์ค)๋ฅผ ํตํด ๋์์ ํ๋ํ๊ฒ ๋๋ค.
// ์บ์คํ
(๋
ธ๋๋ฅผ ์๋ฆฌ๋จผํธ๋ก...)
Element memberElement = (Element)memberNode;
//-- ์ด์ ๊ฐ์ ์ฝ๋ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ ์ด์ ๋
// ์๋ฆฌ๋จผํธ๊ฐ ๋
ธ๋์ ํ์ ๊ฐ๋
์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ตฌ๋ฌธ.
// ๊ฒฐ๊ณผ ์ถ๋ ฅ
System.out.printf("%s %s%n", getText(memberElement, "name")
,getText(memberElement, "telephone"));
//--==>>
/*
๋
ธ์ํ 010-1234-4567
๊น๋ฏผ์ง 010-9987-8876
*/
// ๋์ ๋ฌธ์(memberList.xml)์
// ์ปค๋ฆฌํ๋ผ(curriculumn)์ ๋ํ ์ฒ๋ฆฌ ์ถ๊ฐ --------------------------
// memberList.xml ์
// memberInfoElement ๋ก ๋ถํฐ curriculumn NodeList ์ป์ด์ค๊ธฐ
NodeList curriculumnNodeList= memberElement.getElementsByTagName("curriculumn");
// check~!!!
if (curriculumnNodeList.getLength() > 0)
{
Node curriculumnNode = curriculumnNodeList.item(0);
Element curriculumnElement = (Element)curriculumnNode;
// ๋ฐฉ๋ฒ 1.
/*
NodeList subNodeList = curriculumnElement.getElementsByTagName("sub");
for (int m = 0; m < subNodeList.getLength(); m++)
{
Node subNode = subNodeList.item(m);
Element subElement = (Element)subNode;
System.out.printf("%s ", subElement.getTextContent());
}
System.out.println();
*/
// ๋ฐฉ๋ฒ 2.
/*
------------------ -------------------------------
Node Type Name Constant
------------------ -------------------------------
1 ELEMENT_NODE
2 ATTRIBUTE_NODE
3 TEXT_NODE
4 CDATA_SECTION_NODE
5 ENTITY_REFERENCE_NODE
6 ENTITY_NODE
7 PROCESSING_INSTRUCTION_NODE
8 COMMENT_NODE
9 DOCUMNET_NODE
10 DOCUMENT_TYPE_NODE
11 DOCUMNET_FRAGMENT_NODE
12 NOTATION_NODE
------------------ -------------------------------
*/
NodeList subNodeList = curriculumnElement.getChildNodes(); // check~!!!
for (int m = 0; m < subNodeList.getLength(); m++)
{
Node subNode = subNodeList.item(m);
if (subNode.getNodeType() == 1) //-- ELEMENT_NODE // check~!!!
{
Element subElement = (Element)subNode;
System.out.printf("%s ", subElement.getTextContent());
}
System.out.println();
}
}
// -------------------------- ์ปค๋ฆฌํ๋ผ(curriculumn)์ ๋ํ ์ฒ๋ฆฌ ์ถ๊ฐ
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
}// end main
private static String getText(Element parent, String tagName)
{
String result = "";
// ๋์ ํ๊ทธ(tagName) ๊ฐ์ฒด์ ์ฒซ ๋ฒ์งธ ์์ ๋
ธ๋ ์ป์ด์ค๊ธฐ
Node node = parent.getElementsByTagName(tagName).item(0);
Element element = (Element)node;
// ๋์ ์๋ฆฌ๋จผํธ(element)์ ์์ ๋
ธ๋(ํ
์คํธ ๋
ธ๋)์ ๊ฐ ์ป์ด์ค๊ธฐ
result = element.getChildNodes().item(0).getNodeValue();
return result;
}
}
//--==>> ์คํ ๊ฒฐ๊ณผ
๋
ธ์ํ 010-1234-4567
JAVA SE
ORACLE
Servlet&JSP
๊น๋ฏผ์ง 010-9987-8876
XmlDomTest03.java
/*=============================================
XmlDomTest03.java
- ์ฝ์๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ๋ก์ปฌ(local) XML ์ฝ์ด๋ด๊ธฐ
(memList.xml)
==============================================*/
package com.test;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomTest03
{
public static void main(String[] args)
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObj = null;
String url = "memList.xml";
xmlObj = builder.parse(url);
Element root = xmlObj.getDocumentElement();
NodeList memNodeList = root.getElementsByTagName("memberInfo");
for (int i = 0; i < memNodeList.getLength() ; i++)
{
Node memNode = memNodeList.item(i);
Element memElement = (Element)memNode;
System.out.printf("์ด๋ฆ : [%s] ์ ํ๋ฒํธ : [%s] ๋์ด : [%s] ๊ตญ์ : [%s] ์ฃผ์: [%s] ์ฃผ๋ฏผ๋ฒํธ: [%s] "
, getText(memElement, "name"), getText(memElement, "tel")
, getText(memElement, "age"), getText(memElement, "nationality")
, getText(memElement, "addr"), getText(memElement, "ssn"));
// hobby ์ฒ๋ฆฌ
NodeList hobbyNodeList = memElement.getElementsByTagName("hobby");
if (hobbyNodeList.getLength() > 0)
{
Node hobbyNode = hobbyNodeList.item(0);
Element hobbyElement = (Element)hobbyNode;
if (hobbyNode.getNodeType() == 1)
{
hobbyElement = (Element)hobbyNode;
System.out.printf("์ทจ๋ฏธ : [%s] ", hobbyElement.getTextContent());
}
//System.out.println();
}
// food ์ฒ๋ฆฌ
NodeList foodNodeList = memElement.getElementsByTagName("food");
if (foodNodeList.getLength() > 0)
{
Node foodNode = foodNodeList.item(0);
Element foodElement = (Element)foodNode;
NodeList foodNameNodeList = foodElement.getChildNodes();
for (int m = 0; m < foodNameNodeList.getLength(); m++)
{
Node foodNameNode = foodNameNodeList.item(m);
if (foodNameNode.getNodeType() == 1)
{
Element foodNameElement = (Element)foodNameNode;
System.out.printf("์์ : [%s] ", foodNameElement.getTextContent());
}
}
//System.out.println();
}
System.out.println();
}
} catch (Exception e)
{
System.out.println(e.toString());
}
}// end main
public static String getText(Element parent, String tagName)
{
String result = "";
Node node = parent.getElementsByTagName(tagName).item(0);
Element element = (Element)node;
result = element.getChildNodes().item(0).getNodeValue();
return result;
}
}
//--==>> ์คํ ๊ฒฐ๊ณผ
/*
์ด๋ฆ : [๋ฐ๊ฐ์] ์ ํ๋ฒํธ : [010-9999-9999] ๋์ด : [28] ๊ตญ์ : [KOR] ์ฃผ์: [๋ํ๋ฏผ๊ตญ] ์ฃผ๋ฏผ๋ฒํธ: [951118-2******] ์ทจ๋ฏธ : [๋จน๊ธฐ] ์์ : [ํ๋ฒ๊ฑฐ] ์์ : [์นํจ] ์์ : [ํผ์]
์ด๋ฆ : [์ ํ์ฑ] ์ ํ๋ฒํธ : [010-9****-****] ๋์ด : [23] ๊ตญ์ : [JAPAN] ์ฃผ์: [๋์ฟ] ์ฃผ๋ฏผ๋ฒํธ: [์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ] ์ทจ๋ฏธ : [์๊ธฐ] ์์ : [์ด๋ฐฅ] ์์ : [๋ผ๋ฉ] ์์ : [๋๊น์ค]
์ด๋ฆ : [๊น๋ฏผ์ง] ์ ํ๋ฒํธ : [010-3****-****] ๋์ด : [24] ๊ตญ์ : [USA] ์ฃผ์: [๋ด์] ์ฃผ๋ฏผ๋ฒํธ: [์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ] ์์ : [ํ์์ก] ์์ : [์ง์ฅ๋ฉด] ์์ : [์งฌ๋ฝ]
์ด๋ฆ : [๊น๊ฒฝํ] ์ ํ๋ฒํธ : [010-4****-****] ๋์ด : [23] ๊ตญ์ : [THAI] ์ฃผ์: [๋ฐฉ์ฝ] ์ฃผ๋ฏผ๋ฒํธ: [์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ] ์ทจ๋ฏธ : [๋๊ธฐ]
์ด๋ฆ : [๋
ธ์ํ] ์ ํ๋ฒํธ : [010-5****-****] ๋์ด : [23] ๊ตญ์ : [CHINA] ์ฃผ์: [์ฐ๋ณ] ์ฃผ๋ฏผ๋ฒํธ: [์ธ๊ตญ์ธ๋ฑ๋ก๋ฒํธ] ์ทจ๋ฏธ : [๋ฐ๊ธฐ]
*/
XmlDomTest04.java
/*=============================================
XmlDomTest04.java
- ์ฝ์๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ๋ก์ปฌ(local) XML ์ฝ์ด๋ด๊ธฐ
(breakfast_menu.xml)
==============================================*/
// breakfast_menu.xml ํ์ผ์ ๋์์ผ๋ก
/*
โ [ Belgian Waffles ] $5.95 650์นผ๋ก๋ฆฌ
- Two of our famous Belgian Waffles with plenty of real maple syrup
-----------------------------------------------------------------------
โ [ Strawberry Belgian Waffles ] $7.95 900์นผ๋ก๋ฆฌ
- Light Belgian waffles covered with strawberries and whipped cream
-----------------------------------------------------------------------
โ [ Berry-Berry Belgian Waffles ] $8.95 900์นผ๋ก๋ฆฌ
- Light Belgian waffles covered with an assortment of fresh berries and whipped cream
-----------------------------------------------------------------------
*/
// ์ด์ ๊ฐ์ด ์ถ๋ ฅ์ด ์ด๋ฃจ์ด์ง ์ ์๋๋ก ํ๋ค.
package com.test;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomTest04
{
public static void main(String[] args)
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObj = null;
String url = "breakfast_menu.xml";
xmlObj = builder.parse(url);
Element root = xmlObj.getDocumentElement();
NodeList menuNodeList = root.getElementsByTagName("food");
for (int i = 0; i <menuNodeList.getLength() ; i++)
{
Node menuNode = menuNodeList.item(i);
Element menuElement = (Element)menuNode;
System.out.printf("โ [ %s ] %s %s์นผ๋ก๋ฆฌ%n %s%n "
, getText(menuElement, "name"), getText(menuElement, "price")
, getText(menuElement, "calories"), getText(menuElement, "description"));
System.out.println("----------------------------------------------------------------------");
}
} catch (Exception e)
{
System.out.println(e.toString());
}
} // end main
private static String getText(Element parent, String tagName)
{
String result = "";
Node node = parent.getElementsByTagName(tagName).item(0);
Element element = (Element)node;
result = element.getChildNodes().item(0).getNodeValue();
return result;
}
}
//--==>> ์คํ ๊ฒฐ๊ณผ
/*
โ [ Belgian Waffles ] $5.95 650์นผ๋ก๋ฆฌ
Two of our famous Belgian Waffles with plenty of real maple syrup
----------------------------------------------------------------------
โ [ Strawberry Belgian Waffles ] $7.95 900์นผ๋ก๋ฆฌ
Light Belgian waffles covered with strawberries and whipped cream
----------------------------------------------------------------------
โ [ Berry-Berry Belgian Waffles ] $8.95 900์นผ๋ก๋ฆฌ
Light Belgian waffles covered with an assortment of fresh berries and whipped cream
----------------------------------------------------------------------
โ [ French Toast ] $4.50 600์นผ๋ก๋ฆฌ
Thick slices made from our homemade sourdough bread
----------------------------------------------------------------------
โ [ Homestyle Breakfast ] $6.95 950์นผ๋ก๋ฆฌ
Two eggs, bacon or sausage, toast, and our ever-popular hash browns
----------------------------------------------------------------------
*/
XmlDomTest05.java
/*=============================================
XmlDomTest05.java
- ์ฝ์๊ธฐ๋ฐ ์๋ฐ ํ๋ก๊ทธ๋จ
- XML DOM ํ์ฉ → ๋ก์ปฌ(local) XML ์ฝ์ด๋ด๊ธฐ
(VEHICLES.xml)
==============================================*/
/*
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
1 Dodge Durango 1998 Sport Utility 18000
Options -------------------------------------------------
Power_Locks : Yes
Power_Window : Yes
Stereo : Radio/Cassette/CD
Air_Conditioning : Yes
Automatic : Yes
Four_Wheel_Drive : Full/Partial
Note : Very Clean
---------------------------------------------------------
2 Honda Civic 1997 Sedan 8000
Options -------------------------------------------------
Power_Locks : Yes
Power_Window : Yes
Stereo : Radio/Cassette/CD
Air_Conditioning : Yes
Automatic : Yes
Four_Wheel_Drive : Full/Partial
Note : Very Clean
:
:
---------------------------------------------------------
*/
package com.test;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomTest05
{
public static void main(String[] args)
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document xmlObj = null;
String url = "VEHICLES.xml";
xmlObj = builder.parse(url);
Element root = xmlObj.getDocumentElement();
NodeList vehiclesNodeList = root.getElementsByTagName("VEHICLE");
for (int i = 0; i < vehiclesNodeList.getLength(); i++)
{
Node vehiclesNode = vehiclesNodeList.item(i);
Element vehiclesElement = (Element)vehiclesNode;
System.out.println("---------------------------------------------------------");
System.out.println("NO MAKE MODEL YEAR STYLE PRICE");
System.out.println("---------------------------------------------------------");
System.out.printf("%s %s %s %s %s %s%n"
, getText(vehiclesElement, "INVENTORY_NUMBER"), getText(vehiclesElement, "MAKE")
, getText(vehiclesElement, "MODEL"), getText(vehiclesElement, "YEAR")
, getText(vehiclesElement, "STYLE"), getText(vehiclesElement, "PRICE"));
System.out.println("Options -------------------------------------------------");
// Option ์ฒ๋ฆฌ
NodeList optionNodeList = vehiclesElement.getElementsByTagName("OPTIONS");
if (optionNodeList.getLength() > 0)
{
Node optionNode = optionNodeList.item(0);
Element optionElement = (Element)optionNode;
NodeList opNodeList = optionElement.getChildNodes();
for (int j = 0; j < opNodeList.getLength(); j++)
{
Node opNode = opNodeList.item(j);
if (opNode.getNodeType() == 1)
{
Element opElement = (Element)opNode;
System.out.printf("%s : %s%n", opElement.getTagName(), opElement.getTextContent());
}
}
System.out.println();
}
}
} catch (Exception e)
{
System.out.println(e.toString());
}
}// end main
private static String getText(Element parent, String tagName)
{
String result = "";
Node node = parent.getElementsByTagName(tagName).item(0);
Element element = (Element)node;
result = element.getChildNodes().item(0).getNodeValue();
return result;
}
}
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
1 Dodge Durango 1998 Sport Utility 18000
Options -------------------------------------------------
Power_Locks : Yes
Power_Window : Yes
Stereo : Radio/Cassette/CD
Air_Conditioning : Yes
Automatic : Yes
Four_Wheel_Drive : Full/Partial
Note : Very clean
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
2 Honda Civic 1997 Sedan 8000
Options -------------------------------------------------
Power_Locks : Yes
Power_Window : Yes
Stereo : Radio/Cassette
Automatic : Yes
Note : Like New
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
3 Dodge Neon 1996 Sedan 7000
Options -------------------------------------------------
Stereo : Radio/Cassette
Automatic : Yes
Note : Need minor body works
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
4 Ferrari F355 1995 Sport 45000
Options -------------------------------------------------
Power_Locks : Yes
Power_Window : Yes
Stereo : Radio/Cassette/CD
Air_Conditioning : Yes
Note : Luxury car
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
5 BMW 3 Series 1998 Sedan 40000
Options -------------------------------------------------
Power_Locks : Yes
Power_Window : Yes
Interiors : Leather
Stereo : Radio/Cassette/CD
Air_Conditioning : Yes
Note : Pre-owned
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
6 BMW Z3 1998 Convertible 33000
Options -------------------------------------------------
Cover_Material : Plastic
Power_Locks : Yes
Power_Window : Yes
Alarm : Yes
Interiors : Fabric
Stereo : Radio/Cassette/CD
Air_Conditioning : Yes
Note : Pre-owned, very clean
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
7 Dodge RAM 1997 Truck 22000
Options -------------------------------------------------
Stereo : Radio
Max_Load : 1500
Note : Heavy duty Vehicle
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
8 Honda Accord 1995 Sedan 8500
Options -------------------------------------------------
Power_Locks : Yes
Stereo : Radio/Cassette
Automatic : Yes
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
9 Dodge RAM 2500 1996 Truck 25000
Options -------------------------------------------------
Stereo : Radio/Cassette
Max_Load : 2500
Note : Heavy duty truck
---------------------------------------------------------
NO MAKE MODEL YEAR STYLE PRICE
---------------------------------------------------------
10 Ford Explorer 1996 Sport Utility 18000
Options -------------------------------------------------
Power_Locks : Yes
Stereo : Radio/Cassette
Automatic : Yes
Interiors : Fabric
Air_Conditioning : Yes
Note : Pre-owned, very clean
'XmlStudy > XmlApp' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ XmlApp 05 ~ 09 [xml url] (0) | 2024.02.02 |
---|