์ตœ๊ณ ์˜ PHP XML DOM ํŠœํ† ๋ฆฌ์–ผ 2024๋…„, ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” DOM์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?,XML ํŒŒ์‹ฑ,์„ค์น˜,XML ํŒŒ์ผ,๋กœ๋“œ ๋ฐ ์ถœ๋ ฅ XML,์ด์†ก XML,๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PHP XML DOM

๋‚ด์žฅ PHP DOM ํŒŒ์„œ ๊ฒƒ์€ ๊ฐ€๋Šฅํ•œ XML ๋ฌธ์„œ๋ฅผ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ๋‹ค.


DOM์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

W3C DOM์€ HTML๊ณผ XML ๋ฌธ์„œ ๊ฐ์ฒด์˜ ํ‘œ์ค€ ์„ธํŠธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ์ด ๋ฌธ์„œ์— ์•ก์„ธ์Šคํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ธฐ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

W3C DOM์€ ๋‹ค๋ฅธ ๋ถ€๋ถ„ (์ฝ”์–ด, XML ๋ฐ HTML) ๋ฐ ๋‹ค๋ฅธ ์ˆ˜์ค€ (DOM ๋ ˆ๋ฒจ 1/2/3)๋กœ ๋ถ„๋ฆฌ๋œ๋‹ค :

* ํ•ต์‹ฌ DOM - ๋ชจ๋“  ๊ตฌ์กฐํ™” ๋œ ๋ฌธ์„œ ๊ฐ์ฒด์˜ ํ‘œ์ค€ ์„ธํŠธ๋ฅผ ์ •์˜
* DOM์€ XML - XML โ€‹โ€‹๋ฌธ์„œ ๊ฐ์ฒด์˜ ํ‘œ์ค€ ์„ธํŠธ๋ฅผ ์ •์˜
* HTML์˜ DOM์€ - ๊ฐœ์ฒด ์ง‘ํ•ฉ HTML ๋ฌธ์„œ์— ๋Œ€ํ•œ ํ‘œ์ค€์„ ์ •์˜

๋Š” XML DOM์˜ ์ง€์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€, ์šฐ๋ฆฌ์˜ ๋ฐฉ๋ฌธ XML์˜ DOM ์ž์Šต์„œ๋ฅผ .


XML ํŒŒ์‹ฑ

์ฝ๊ธฐ ๋ฐ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ - ์ƒ์„ฑ ๋ฐ ํ”„๋กœ์„ธ์Šค - XML โ€‹โ€‹๋ฌธ์„œ๋ฅผ, ๋‹น์‹ ์€ XML ํŒŒ์„œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

XML ํŒŒ์„œ์˜ ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ณธ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค :

  • ํŠธ๋ฆฌ - ๊ธฐ๋ฐ˜ ํŒŒ์„œ๋Š”์ด ํŒŒ์„œ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ XML ๋ฌธ์„œ๋ฅผ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ทธ๊ฒƒ์€ ์ „์ฒด ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ, ์ด๋Ÿฌํ•œ ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ (DOM)์™€ ๊ฐ™์€ ํŠธ๋ฆฌ์˜ ์š”์†Œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ํŒŒ์„œ : ์ด๋ฒคํŠธ์˜ ์‹œ๋ฆฌ์ฆˆ๋กœ์„œ XML ๋ฌธ์„œ. ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ํŒŒ์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

DOM ํŒŒ์„œ๋Š” ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ํŒŒ์„œ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ XML ๋ฌธ์„œ ์กฐ๊ฐ ๋ด :

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>Jani</from>

XML DOM ์œ„์˜ XML ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ :

  • ๋ ˆ๋ฒจ 1 : XML ๋ฌธ์„œ
  • ๋ ˆ๋ฒจ 2 : ๋ฃจํŠธ ์š”์†Œ : <์—์„œ>
  • ๋ ˆ๋ฒจ 3 : ํ…์ŠคํŠธ ์š”์†Œ "์•ผ๋‹ˆ"

์„ค์น˜

DOM XML ํŒŒ์„œ ํ•จ์ˆ˜๋Š” PHP ์ฝ”์–ด์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ ์„ค์น˜๊ฐ€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.


XML ํŒŒ์ผ

์•„๋ž˜์˜ XML ํŒŒ์ผ์˜ ์˜ˆ์—์„œ ์‚ฌ์šฉ๋  ๊ฒƒ์ด๋‹ค :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


๋กœ๋“œ ๋ฐ ์ถœ๋ ฅ XML

์šฐ๋ฆฌ๋Š” XML์„๋กœ๋“œํ•˜๋Š” XML ํŒŒ์„œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผํ•˜๊ณ , ๊ทธ๊ฒƒ์„ ์ถœ๋ ฅํ•œ๋‹ค :

์˜ˆ

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

print $xmlDoc->saveXML();
?>

๊ฐ€ ์ถœ๋ ฅ ์œ„์˜ ์ฝ”๋“œ :

ToveJaniReminder Don't forget me this weekend!

๋ธŒ๋ผ์šฐ์ € ์ฐฝ์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณผ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ HTML์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

์ด ์˜ˆ๋Š” ์œ„์˜ DOMDocument๋ฅผ-๊ฐœ์ฒด์™€ XML ๊ฐ์ฒด์˜ ๋ฌธ์„œ ๋„ฃ๊ธฐ "note.xml"๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด๋กœ ๋‚ด๋ถ€ XML ๋ฌธ์„œ์˜ saveXML () ํ•จ์ˆ˜, ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ด์†ก XML

์šฐ๋ฆฌ๋Š” XML์„๋กœ๋“œํ•˜๊ณ , ๋ชจ๋“  ์š”์†Œ <์ฐธ๊ณ > ์š”์†Œ๋ฅผ ํ†ต๊ณผ ํ•  XML ํŒŒ์„œ๋ฅผ ์ดˆ๊ธฐํ™” ํ•  :

์˜ˆ

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
{
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>

๊ฐ€ ์ถœ๋ ฅ ์œ„์˜ ์ฝ”๋“œ :

#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =

์œ„์˜ ์˜ˆ์—์„œ๋Š”, ํ…์ŠคํŠธ ๋…ธ๋“œ์˜ ๊ฐ ์š”์†Œ ์‚ฌ์ด์˜ ๊ณต๊ธฐ์˜ ์กด์žฌ๋ฅผ ์ฐธ์กฐ.

XML์ด ์ƒ์„ฑ๋˜๋ฉด, ๊ทธ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ๋“ค ์‚ฌ์ด์˜ ๊ณต๋ฐฑ์„ ํฌํ•จ ํ•  ๊ฒƒ์ด๋‹ค. ๋‹น์‹ ์ด ๊ทธ๋“ค์—์ฃผ์˜๋ฅผ ์ง€๋ถˆํ•˜๋Š” ๊ฒฝ์šฐ XML์˜ DOM ํŒŒ์„œ ๊ทธ๋“ค์—๊ฒŒ ๊ฐ™์€ ๊ณตํ†ต ์š”์†Œ๋Š”, ๋•Œ๋•Œ๋กœ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ.


๋Š” XML DOM์˜ ์ง€์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€, ์šฐ๋ฆฌ์˜ ๋ฐฉ๋ฌธ XML์˜ DOM ์ž์Šต์„œ๋ฅผ .

PHP XML DOM
10/30