1. DOM °³³ä ÀÌÇØÇϱâ
1-1. DOM(Document Object Model) À̶õ?
1) DOMÀº ¹®¼ °´Ã¼ ¸ðµ¨ÀÇ ¾à¾î·Î HTML°ú XML ¹®¼¸¦ À§ÇÑ API(Application Programmi
ng Interface)·Î¼ ¹®¼ÀÇ ¹°¸®Àû ±¸Á¶¿Í ¹®¼°¡ Á¢±ÙµÇ°í ´Ù·ç¾îÁö´Â ¹æ¹ýÀ» Á¤ÀÇÇÑ´Ù.
2) DOMÀÇ ¸ñÀû
(1) ´Ù¾çÇÑ È¯°æ°ú ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëÇÒ ¼ö Àִ ǥÁØÀûÀÎ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º Á¦°ø
(2) ÇÁ·Î±×·¥ ¶Ç´Â ½ºÅ©¸³Æ®¸¦ ÅëÇØ HTMLÀ̳ª XML°°Àº À¥ ¹®¼ÀÇ ³»¿ë°ú ±¸Á¶ ±×¸®°í
½ºÅ¸ÀÏ Á¤º¸ÀÇ °Ë»ö ¶Ç´Â ¼öÁ¤ÀÌ °¡´ÉÇϵµ·Ï ÇØÁÖ´Â Ç÷§Æû ¶Ç´Â ¾ð¾î¿¡ Á߸³ÀûÀÎ ÀÎÅÍ
ÆäÀ̽ºÀÌ´Ù.
3) DOM ¹®¼¸¦ ÀÌ¿ëÇÑ XML ¹®¼ »ý¼º °úÁ¤
(1) XML ¹®¼¸¦ Ãë±ÞÇϱâ À§ÇÏ¿© ÇÁ·Î±×·¥¿¡¼ XML ¹®¼¸¦ ÀоîµéÀδÙ.
(2) XML ¹®¼¸¦ XML Æļ¿¡ ÀÇÇØ Æ®¸® ±¸Á¶·Î ¸¸µç´Ù.
(3) DOM API¸¦ ÀÌ¿ëÇÏ¿© ÀоîµéÀÎ XML ¹®¼¿¡ ´ëÇÑ ¿¤¸®¸ÕÆ®, ÅؽºÆ®, ¾ÖÆ®¸®ºäÆ® ³»¿ë
À» ÃßÃâÇÑ ÈÄ XML ¹®¼¸¦ Á¶ÀÛ(Ãß°¡,»èÁ¦,°»½Å) ÇÑ´Ù.
(4) Á¶À۵ǾîÁø XML ¹®¼¸¦ ÇÁ·Î±×·¥ÀÌ ¸¶¹«¸®ÇÏ¿© »ý¼º ȤÀº °»½ÅÇÏ°Ô µÈ´Ù.
1-2. DOM Level
1) DOM ½ºÆåÀº W3C¿¡¼ Level ´ÜÀ§·Î ¸¸µé¾îÁö°í Àִµ¥, óÀ½¿¡ ¸¸µç ±Ç°í¾È DOM Lev
el 1 À̾ú°í, ÇöÀç´Â DOM Level 3 ±Ç°í¾È±îÁö ¸¸µé¾îÁø »óÅÂÀÌ´Ù.
2) DOM ·¹º§¿¡ °üÇÑ Á¤º¸
¢Á DOM Level 1 : core, HTML, ±×¸®°í XML ¹®¼¸ðµ¨¿¡ ´ëÇÑ ³»¿ëÀÌ´Ù. ·¹º§1Àº ¹®¼
¿¡ ´ëÇÏ¿© Ç×ÇØ(navigation)Çϰųª Á¶ÀÛ(manipulation)ÇÏ´Â ±â´ÉÀ»
Æ÷ÇÔÇÑ´Ù.
¢Á DOM Level 2 : ½ºÅ¸ÀÏ ½¬Æ®¸¦ Àû¿ëÇÑ °³Ã¼¸ðµ¨À» Áö¿øÇÏ°í ¹®¼¿¡ ½ºÅ¸ÀÏ Á¤º¸¸¦
Á¶ÀÛÇÏ´Â ±â´ÉÀ» Á¤ÀÇÇÑ´Ù. ¶ÇÇÑ ¹®¼¿¡ ´ëÇÑ Ç³ºÎÇÑ ÁúÀÇ ±â´É°ú
À̺¥Æ® ¸ðµ¨¿¡ ´ëÇÑ Á¤ÀÇ ±â´Éµµ Æ÷ÇÔÇÑ´Ù.
¢Á DOM Level 3 : À©µµ¿ìÁî ȯ°æ ÇÏ¿¡¼ »ç¿ë°¡´ÉÇÑ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ±â¼úÇÏ´Â
°Í±îÁö Æ÷ÇÔÇÑ´Ù. À̸¦ ÀÌ¿ëÇÏ¿© »ç¿ëÀÚ´Â ¹®¼ÀÇ DTD¸¦ Á¶ÀÛÇÏ´Â
±â´É°ú º¸¾È ·¹º§±îÁö Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.
1-3. DOM ±â¹Ý Parser
1) DOM ±â¹Ý Æļ´Â DOM API ¶ó´Â ÇÁ·Î±×·¥ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÑ´Ù. ÀÌ ¶óÀ̺귯¸®¸¦
ÀÌ¿ëÇϸé XML ¹®¼ÀÇ Å×ÀÌÅ͸¦ ¿¢¼¼½ºÇÏ°í º¯°æÇϱâ À§ÇØ DOM Æ®¸®¿¡ ÀÖ´Â ³ëµå¸¦
´Ù·ê ¼ö ÀÖ´Ù. ¿©·¯ ¾ð¾î·Î ÀÛ¼ºµÇ¾î ÀÖÀ¸¸ç º¸Åë ¹«·á·Î ´Ù¿î ¹ÞÀ» ¼ö ÀÖ´Ù. ¿©·¯ ÀÀ¿ë
ÇÁ·Î±×·¥-ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 6(msxml 3.0 ±âº» ³»Àå) ¿¡¼ Æļ¸¦ ÀÌ¹Ì ³»ÀåÇÏ°í ÀÖ´Ù.
2) ´ëÇ¥ÀûÀÎ DOM ±â¹Ý Æļ (Áö¿ø¹öÀü : DOM Level 2 SAX 2.0)
¢Á JAXP : ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÀÇ Æļ(Java API for XML Parsing)
http://java.sun.com/xml
¢Á XML4J : IBMÀÇ Æļ(XML Parser for Java)
http://www.alphaworks.ibm.com/tech/xml4j
¢Á Xerces : ¾ÆÆÄÄ¡ÀÇ Æļ(Xerces Java Parser) http://xml.apache.org/
¢Á msxml : ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Æļ http://msdm.microsoft.com/xml
1-4. DOM ±¸Á¶¿Í ¿ø¸®
DOMÀº XML ¹®¼¿¡ ³ëµå Ŭ·¡½ºÀÇ ÇÏÀ§ Ŭ·¡½º ÀνºÅϽº·Î Ç¥ÇöµÇ´Â ³ëµåµéÀÇ Æ®¸®·Î
Ç¥ÇöµÇ´Âµ¥, ƯÁ¤ ³ëµåÀÇ ÇÏÀ§Å¬·¡½º´Â ¿ä¼Ò, ÅؽºÆ®, ÁÖ¼®ÀÌ µÉ ¼ö ÀÖ´Ù. µû¶ó¼ DOMÀº
Æ®¸® ±¸Á¶·Î¼ XML ¹®¼¸¦ ´Ù·ç°Ô µÇ´Â °ÍÀÌ´Ù.
1) DOMÀ» ÀÌ¿ëÇÑ XML ¹®¼º¯È¯
XML ¹®¼¸¦ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÆÄ½Ì ¿äûÀ» Çϸé XML Æļ¿¡ ÀÇÇØ Çؼ®ÇÑ ÈÄ DOM ÀÎÅÍ
ÆäÀ̽º¸¦ ÀÌ¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥°ú Á¤º¸¸¦ ¼·Î Àü´ÞÇÏ¿© XML¹®¼¸¦ Á¶ÀÛÇϵµ·Ï ÇÏ°í
ÀÖ´Ù.
2) XML ¹®¼¿Í DOM Æ®¸®±¸Á¶
(1) XML ¹®¼
<Ã¥>
<Á¦¸ñ>XML Á¤¸ñÁ¦¸ñ>
<¹ßÇà³âµµ>2004³â ¹ßÇà¹ßÇà³âµµ>
Ã¥>
(2) DOM ³ëµå Æ®¸® ¸ðµ¨¸µ
[ Document ]
(NodeList)
[Element "Ã¥"]
(NodeList)
(NodeList) (NodeList)
[Element "Á¦¸ñ"] [Element "¹ßÇà³âµµ"]
[NamedNodeMap "ºÐ·ù"] [NamedNodeMap "ºÐ·ù"]
[Att Node "ÄÄÇ»ÅÍ"] [Att Node "¹ßÇà"]
(NodeList) (NodeList)
[Text CharacterData "XML Á¤º¹"] [Text CharacterData "2004³â ¹ßÇà"]
3) XML ¹®¼¿¡¼ÀÇ °´Ã¼
(1) XML ¹®¼
<Ã¥>
<Á¦¸ñ ºÐ·ù="ÄÄÇ»ÅÍ">XML Á¤º¹Á¦¸ñ>
<¹ßÇà³âµµ ºÐ·ù="¹ßÇà">2004³â ¹ßÇà¹ßÇà³âµµ>
Ã¥>
(2) XML °´Ã¼
¢Á Documents : ÀÛ¼ºµÈ Àüü ¹®¼¸¦ ´ëÇ¥ÇÏ´Â °´Ã¼ÀÌ´Ù.
¢Á <Ã¥> : 2°³ÀÇ ÇÏÀ§ ¿ä¼Ò °´Ã¼ÀÎ <Á¦¸ñ>°ú <¹ßÇà³âµµ>¸¦ Æ÷ÇÔÇÑ ·çÆ® °´Ã¼ÀÌ´Ù.
¢Á <Á¦¸ñ> : ´ÙÀ½ ¿ä¼Ò°´Ã¼·Î <¹ßÇà³âµµ>¸¦ °®°í "XML Á¤º¹"¶ó´Â text°´Ã¼¸¦ ¼ÒÀ¯ÇÔ.
¢Á XML Á¤º¹ : <Á¦¸ñ> °´Ã¼ÀÇ text°´Ã¼°¡ µÈ´Ù.
¢Á <¹ßÇà³âµµ> : ÀÌÀü ¿ä¼Ò°´Ã¼·Î <Á¦¸ñ>¸¦ °®°í "2004³â ¹ßÇà"À̶ó´Â text°´Ã¼¸¦ ¼ÒÀ¯
ÇÑ´Ù.
¢Á 2004³â ¹ßÇà : <¹ßÇà³âµµ> °´Ã¼ÀÇ text°´Ã¼°¡ µÈ´Ù.
2. DOM API
2-1. DOM ÀÎÅÍÆäÀ̽º
1) W3C¿¡ ÀÇÇØ ÃßõµÈ ÇÁ·Î±×·¡¹Ö ±Ô°ÝÀ¸·Î, ÇÁ·Î±×·¡¸Ó°¡ HTMl ÆäÀÌÁö³ª XML ¹®¼µéÀ»
ÇÁ·Î±×·¥ °´Ã¼·Î ¸¸µé°Å³ª ¼öÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ¸ç, ±×Àú µ¥ÀÌÅÍ ±¸Á¶ÀÇ ÇüÅ·Π¹®¼¸¦
Ç¥ÇöÇÏ°í ÀÖ´Â ÇöÀçÀÇ HTML°ú XML ¹®¼µéÀ» DOM ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© ¸¶Ä¡ ÇÁ·Î
±×·¥ °´Ã¼Ã³·³, ÀڽŵéÀÇ ÄÁÅÙÃ÷³ª, °´Ã¼ ³»¿¡ °¨Ãß¾îÁø µ¥ÀÌÅ͸¦ °¡Áú ¼ö ÀÖ°Ô µÊÀ¸·Î½á,
¹®¼¸¦ Á¶ÀÛÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
¢Á Document
¢Á Node
¢Á Nodelist
¢Á Element
¢Á NamedNodeMap
2-2. Document ÀÎÅÍÆäÀ̽º
Document ÀÎÅÍÆäÀ̽º´Â HTML ¶Ç´Â XML ¹®¼¸¦ ³ªÅ¸³»±â À§ÇØ »ç¿ëÇϴµ¥ ¹®¼ Æ®¸®
±¸Á¶¿¡¼ ÃÖ»óÀ§ ·çÆ®¿¡ ÇØ´çÇÑ´Ù.
1) Document ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡
(1) ¿¤¸®¸ÕÆ®, ÅؽºÆ®³ëµå, ÁÖ¼®(comments), ó¸® ¸í·É(processing instructions) µîÀ»
Æ÷ÇÔÇÏÁö ¾Ê°í´Â Document ÀÎÅÍÆäÀ̽º°¡ Á¸ÀçÇÒ ¼ö ¾ø´Ù.
(2) Document ÀÎÅÍÆäÀ̽º´Â ÀÌ °´Ã¼µéÀ» ¸¸µå´Âµ¥ ÇÊ¿äÇÑ ¸Þ¼Òµå ¿ä¼Òµéµµ Æ÷ÇÔÇϸç
»ý¼ºµÈ Node °´Ã¼µéÀº Document¿Í Node¸¦ °ü·ÃÁþ´Â ¼Ó¼ºÀ» °¡Áø´Ù.
(3) Document ÀÎÅÍÆäÀ̽º
¢Á Element getDocumentElement()
¢Á NodeList getElementsBytagName(String tagname)
¢Á Element createElement(String tagName)
¢Á Text createTextNode(String data)
¢Á Attr createAttribute(String name)
2) Document ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼Òµå
(1) Element getDocumentElement()
XML ¹®¼¿¡¼ ·çÆ®¿ä¼Ò¸¦ ¾ò±â À§ÇØ ¸Þ¼Òµå·Î óÀ½ XML Æ®¸® ±¸Á¶¸¦ Á¢ÇÒ ¶§ °¡Àå
¸ÕÀú ·çÆ®¿ä¼Ò¸¦ Á¢±ÙÇÑ ÈÄ¿¡ ¼¼ºÎÀûÀ¸·Î Á¢±ÙÇÏ°Ô µÈ´Ù.
(2) NodeList getElementsBytagName(String tagname)
XML ¹®¼¿¡¼ ¿ä¼Ò¸®½ºÆ®¸¦ ¾ò±â À§ÇØ »ç¿ëµÇ´Â ¸Þ¼ÒµåÀε¥ ÀÎÀÚ °ªÀº tagNameÀÌ
¿Ã ¼ö Àִµ¥ tagName ÀÌÈÄÀÇ ¸ðµç ¿ä¼Ò¸®½ºÆ®¸¦ ¹ÝȯÇÏ°Ô µÈ´Ù.
(3) Element createElement(String tagName)
ÁöÁ¤µÈ Çü½ÄÀÇ ELEMENT¸¦ »ý¼ºÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù. ÀÌ ¸Þ¼Òµå´Â ÀÎÀÚ °ªÀ¸·Î
tagNameÀ» »ç¿ëÇÒ ¼ö Àִµ¥ XML¿¡¼ ¼³¸íÇÑ ¿¤¸®¸ÕÆ® Çü½Ä À̸§ÀÌ´Ù.
(4) Text createTextNode(String data)
ÁöÁ¤µÈ ¹®ÀÚ¿À» °¡Áø Text ³ëµå¸¦ »ý¼ºÇÏ´Â ¸Þ¼Òµå·Î ÀÎÀÚ °ªÀ¸·Î ±× ³ëµå¿¡ ´ëÇÑ
µ¥ÀÌÅ͸¦ °¡Áö¸ç ¸®ÅÏ µÇ´Â °ªÀº »õ·Î¿î Text °´Ã¼ÀÌ´Ù.
(5) Attr createAttribute(String name)
ÁÖ¾îÁø À̸§ÀÇ Attribute¸¦ »ý¼ºÇϴµ¥ ÀÎÀÚ °ªÀº ¼Ó¼ºÀÇ À̸§ÀÎ nameÀÌ´Ù. ¶ÇÇÑ ¹Ýȯ
°ªÀº »õ·Î¿î Attr°´Ã¼·Î½á ¸¸¾à À̸§ÀÌ Àû´çÇÏÁö ¾ÊÀº ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ¸é ¿¡·¯¸¦ ¹ß»ýÇÔ.
3) Node ÀÎÅÍÆäÀ̽º
Node ÀÎÅÍÆäÀ̽º´Â XML ¹®¼¿¡¼ ³ëµå Æ®¸®ÀÇ °¢ ¿ä¼Ò¸¦ ÀÐ°í ¾²±â À§ÇØ »ç¿ëµÇ´Âµ¥
DOM¿¡¼ °¡Àå ±âº»ÀûÀÎ ÀÚ·áÇüÀ¸·Î ¾²ÀδÙ.
(1) Node ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡
Node ÀÎÅÍÆäÀ̽º´Â ¿ø¼Ò, ÁÖ¼®, ¼Ó¼ºµéÀ» »ó¼Ó¹ÞÀ¸¸ç ÀÌÁß¿¡ ÃÖÇÏÀ§ ³ëµåÀÎ Text
³ëµå´Â ÀÚ½ÄÀ» °¡Áú ¼ö ¾ø´Ù. ¸¸¾à Text³ëµå¿¡ ÀÚ½ÄÀ» Ãß°¡Çϸé DOMException ¿¡·¯
°¡ ¹ß»ýÇÏ°Ô µÈ´Ù.
¢Ã ³ëµå¿¡ °üÇÑ Á¤º¸(NodeType)
±¸ºÐ |
³ëµåÁ¾·ù |
³ëµå¸í |
³ëµå°ª |
Element |
ELEMENT_NODE |
¿ä¼Ò¸í |
null |
Attribute |
ATTRIBUTE_NODE |
¼Ó¼º¸í |
¼Ó¼º°ª |
Text |
TEXT_NODE |
#text |
³ëµåÀÇ ³»¿ë |
CDATA |
CDATA_SECTION_NODE |
#cdata-section |
³ëµåÀÇ ³»¿ë |
Entity |
ENTITY_NODE |
ÂüÁ¶µÈ ¿£Æ¼Æ¼ À̸§ |
null |
Entity
Reference |
ENTITY_REFERENCE_NODE |
¼±¾ðµÈ ¿£Æ¼Æ¼ À̸§ |
null |
Processing Instruction |
PROCESSING_INSTRUCTION_NODE |
PIÀ̸§ |
PIÀ̸§À» Á¦¿ÜÇÑ Àüü ³»¿ë |
comment |
COMMENT_NODE |
#comment |
ÁÖ¼® ³»¿ë |
Document |
DOCUMENT_NODE |
#document |
null |
Document Type |
DOCUMENT_TYPE_NODE |
·çÆ®¿ä¼Ò¸í |
null |
Notation |
NOTATION_NODE |
Notaion¼±¾ðÀ̸§ |
null |
DOCUMENT
FRAGMENT |
DOCUMENT_FRAGMENT |
#document-fragment |
null |
(2) Node ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼Òµå
¢Ã Node getFirstChild() : ÇöÀç ³ëµåÀÇ Ã¹ ¹ø° ³ëµå¸¦ ³ªÅ¸³»°í ¸¸¾à ±×·± ³ëµå°¡
¾øÀ¸¸é null°ªÀ» ¹ÝȯÇÏ¸ç ¸®ÅÏ°ªÀº nodeÀÌ´Ù.
¢Ã Node getNextSibling() : ÇöÀç ³ëµåÀÇ ¹Ù·Î ´ÙÀ½ ³ëµå¸¦ ³ªÅ¸³¾ ¶§ »ç¿ëµÇ´Â ¸Þ¼Ò
µå·Î¼ ¸¸¾à ÇØ´ç ³ëµå°¡ ¾øÀ¸¸é null°ªÀ» ¹ÝȯÇÏ°í, ¸®ÅÏ°ªÀº nodeÀÌ´Ù.
¢Ã short getNodeType() : ³ëµåÀÇ Á¾·ù¸¦ ³ªÅ¸³»´Â ¸Þ¼Òµå·Î ¹ÝȯµÇ´Â °ªÀº Á¤¼öÇü
°ªÀ» °¡Áø´Ù.
< ³ëµåÀÇ Á¾·ù¿Í »ó¼ö °ª >
¸â¹öÇʵå À̸§ |
Á¤¼ö°ª |
³ëµå Á¾·ù |
Node.ELEMENT_NODE |
1 |
Element |
Node.ATTRIBUTE_NODE |
2 |
Attr |
Node.TEXT_NODE |
3 |
Text |
Node.CDATA_SECTION_NODE |
4 |
CDATASection |
Node.ENTITY_REFERENCE_NODE |
5 |
EntityReference |
Node.ENTITY_NODE |
6 |
Entity |
Node.PROCESSING_INSTRUCTION_NODE |
7 |
ProcessingInstruction |
Node.COMMENT_NODE |
8 |
Comment |
Node.DOCUMENT_NODE |
9 |
Document |
Node.DOCUMENT_TYPE_NODE |
10 |
DocumentType |
Node.DOCUMENT_FRAGMENT_NODE |
11 |
DocumentFragment |
Node.NOTATION_NODE |
12 |
Notation |
¢Ã string getNodeName() : ³ëµåÀÇ À̸§À» ³ªÅ¸³»´Â ¸Þ¼Òµå·Î ÇØ´ç ³ëµåÀÇ À̸§À» ¹®ÀÚ¿ ÇüÀ¸·Î ¹ÝȯÇÑ´Ù.
¢Ã string getNodeValue() : ³ëµåÀÇ °ªÀ» ³ªÅ¸³»´Â ¸Þ¼Òµå·Î ¹®ÀÚ¿ÇüÀ¸·Î ÇØ´ç ³ëµåÀÇ °ªÀ» ¹ÝȯÇÑ´Ù.
¢Ã Document getOwnerDocument() : ÇöÀç ³ëµå¿Í ¿¬°áµÈ Document °´Ã¼¸¦ ³ªÅ¸³»´Â ¸Þ¼Òµå·Î »õ·Î¿î ³ëµå¸¦ ¸¸µå´Â µ¥ »ç¿ëµÇ´Â Document °´Ã¼À̱⵵ ÇÏ´Ù. ÀÌ ³ëµå°¡ DocumentÀ̸é null°ªÀ» ¹ÝȯÇÑ´Ù.
¢Ã Node appendChild(Node newChild) : appendChild ¸Þ¼Òµå´Â »õ·Î¿î ³ëµå¸¦ Ãß°¡ÇÒ ¶§ »ç¿ëÇϴµ¥, newChild ³ëµå¸¦ ÇöÀç ³ëµåÀÇ ÀÚ½Ä ¸®½ºÆ®ÀÇ ³¡¿¡ »ðÀÔÇÑ´Ù. newChild°¡ DocumentFragment°´Ã¼À̸é DocumentFragmentÀÇ Àüü ³»¿ëÀÌ ÇöÀç ³ëµåÀÇ ÀÚ½Ä ¸®½ºÆ® ¾ÈÀ¸·Î »ðÀԵȴÙ.
¢Ã Node getParentNode() : getParentNode ¸Þ¼Òµå´Â ÇöÀç ³ëµåÀÇ ºÎ¸ð ³ëµå¸¦ ³ªÅ¸
³»´Â ¸Þ¼Òµå·Î All nodes, except Document, DocumentFragment, ±×¸®°í Attribute
¸¦ Á¦¿ÜÇÑ ¸ðµç ³ëµå°¡ ºÎ¸ð¸¦ °¡Áú ¼ö ÀÖ´Ù. ±×·¯³ª ³ëµå°¡ ¸¸µé¾îÁ³Áö¸¸ Æ®¸®¿¡ Ãß°¡µÇÁö ¾Ê¾Ò°Å³ª Æ®¸®¿¡¼ Á¦°ÅµÇÁö ¾Ê¾ÒÀ» °æ¿ì ÀÌ°ÍÀº null °ªÀ» ¹ÝȯÇÑ´Ù.
¢Ã Node insertBefore(Node newChild, Node refChild) : insertBefore ¸Þ¼Òµå´Â ¿øÇϴ ƯÁ¤ À§Ä¡(refChild)¿¡ »õ·Î¿î ³ëµå(newChild)¸¦ »ðÀÔÇÒ ¶§ »ç¿ëÇÏ´Àµ¥, À̶§ »ðÀԵǴ À§Ä¡´Â refChildÀÇ ÀÌÀü À§Ä¡°¡ µÈ´Ù. ¸¸¾à refChild°¡ null°ªÀ̸é ÀÚ½Ä ¸®½ºÆ®ÀÇ ³¡¿¡ newChild¸¦ »ðÀÔÇÏ°í, newChild°¡ DocumentFragment °´Ã¼À̸é refChild ¾Õ¿¡ °°Àº ¼ø¼·Î ¸ðµç ÀڽĵéÀÌ »ðÀԵȴÙ. ¸¸¾à newChild°¡ ÀÌ¹Ì Æ®¸®¾È¿¡ ÀÖÀ¸¸é ¸ÕÀú Á¦°ÅµÈ ÈÄ¿¡ »ðÀԵȴÙ.
¢Ã Node replaceChild(Node newChild, Node refChild) : replaceChild ¸Þ¼Òµå´Â »õ ³ëµå¸¦ ³ªÅ¸³»´Â newChild¿Í ¸®½ºÆ®¿¡¼ ´ëüµÇ´Â ³ëµå¸¦ ³ªÅ¸³»´Â refChild¸¦ °¡Áö¸ç, ³ëµå refChild¸¦ newChild·Î ´ëüÇÑ´Ù. newChild°¡ ÀÌ¹Ì Æ®¸®»ó¿¡ Á¸ÀçÇÏÁö¸¸ ¸ÕÀú Á¦°ÅÇÑ ÈÄ¿¡ »ðÀԵȴÙ.
¢Ã Node removeChild(Node oldChild) : removeChild ¸Þ¼Òµå´Â ÀÎÀÚ °ªÀ¸·Î Á¦°ÅµÉ ³ëµå oldChild¸¦ °¡Áö¸ç, ÀÚ½Ä ¸®½ºÆ®·ÎºÎÅÍ oldChild¿¡ ÇØ´çÇÏ´Â ³ëµå¸¦ Á¦°ÅÇÑ´Ù. ¸¸¾à ÇöÀç ³ëµå°¡ Àбâ Àü¿ëÀÏ ¶§¿¡´Â NO_MODIFICATION_ALLOWED_ERR ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
¢Ã NamedNodeMap getAttributes() : ³ëµåÀÇ ¼Ó¼º¸®½ºÆ®¸¦ ¾ò´Â´Ù.
4) NodeList ÀÎÅÍÆäÀ̽º
NodeList ÀÎÅÍÆäÀ̽º´Â ³ëµåµéÀÇ ÁýÇÕÀÌ ±¸ÇöµÇ´Â ¹æ¹ýÀ» Á¤ÀÇÇϰųª ¼ø¼°¡ ÀÖ´Â ³ëµå
µéÀÇ ÁýÇÕÀ» Ç¥ÇöÇÒ ¶§ »ç¿ëÇÑ´Ù.
(1) NodeList ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡
NodeList¿¡¼ÀÇ ¾ÆÀÌÅÛÀº 0ºÎÅÍ ½ÃÀ۵Ǵ Á¤¼ö À妽º¿¡ ÀÇÇÏ¿© Á¢±ÙÇÒ ¼ö ÀÖÀ¸¸ç
NodeList¸¦ ÅëÇØ ¾òÀº ³ëµåµéÀÇ ¼ø¼´Â XML¿¡¼ ºÎ¸ð³ëµå·ÎºÎÅÍ Ãß°¡ÇÑ ¼ø¼°¡
µÈ´Ù.
(2) NodeList ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼Òµå
¢Ã int getLength() : ³ëµåÀÇ °³¼ö¸¦ ³ªÅ¸³»´Âµ¥ ÀÚ½Ä ³ëµå À妽º ¹üÀ§Àº 0¿¡¼
length-1±îÁöÀÌ´Ù.
¢Ã Node item(int index) : ³ëµå¸®½ºÆ® ¾È¿¡¼ ³ëµåÀÇ À妽º °ªÀ» ÀÎÀÚ·Î °¡Áö¸ç,
³ëµå¸®½ºÆ®¿¡¼ index°¡ °¡¸®Å°´Â ³ëµå¸¦ ¹ÝȯÇÑ´Ù. ¶ÇÇÑ index°¡ ¸®½ºÆ®¿¡¼ÀÇ
³ëµå °³¼öº¸´Ù ¸¹°Å³ª °°À» ¶§¿¡´Â null°ªÀ» ¹ÝȯÇÑ´Ù.
5) Element ÀÎÅÍÆäÀ̽º
Element ÀÎÅÍÆäÀ̽º´Â HTML ¹®¼ ¶Ç´Â XML ¹®¼ÀÇ ¿ø¼Ò¸¦ Ç¥ÇöÇϱâ À§ÇØ »ç¿ëµÈ´Ù.
(1) Element ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡
Attribute °´Ã¼ ¶Ç´Â ¼Ó¼º°ª µîÀ» °Ë»öÇÒ ¼ö ÀÖ´Â ¸Þ¼Òµå¸¦ °¡Áö°í ÀÖ´Ù. ±×¸®°í ¸ðµç ¼Ó¼ºÀÌ °£´ÜÇÑ ¹®ÀÚ¿ °ªÀ» °¡Áö´Â HTML¿¡¼ ¼Ó¼º°ª¿¡ Á÷Á¢ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹æ¹ýµéÀÌ »ç¿ëµÉ ¼ö ÀÖ´Ù.
(2) Element ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼Òµå
¢Ã getAttribute(String name) : °Ë»öÇÒ ¼Ó¼ºÀ̸§ÀÎ nameÀ» ÀÎÀÚ·Î °®´Â´Ù. À̶§ ¹ÝȯµÇ´Â °ªÀº ¹®ÀÚ¿ÀÎ Attr °ª, ¶Ç´Â ±× ¼Ó¼ºÀÌ ÁöÁ¤µÈ °ªÀ» °®´Âµ¥ ¸¸¾à, ±âº» °ªÀÌ ¾øÀ» °æ¿ì ºó ¹®ÀÚ¿ÀÌ µÈ´Ù.
¢Ã setAttribute(String name, String value) : ÁÖ¾îÁø À̸§°ú °ªÀ» °®´Â ¼Ó¼ºÀ» Ãß°¡ÇÏ ´Âµ¥ µ¿ÀÏÇÑ À̸§À» °¡Áø ¼Ó¼ºÀÌ Á¸ÀçÇÒ °æ¿ì °ªÀ» º¯°æÇÑ´Ù.
¢Ã removeAttribute(String name) : ÁÖ¾îÁø À̸§(name)ÀÇ ¼Ó¼ºÀ» Á¦°ÅÇÏ´Â ¸Þ¼ÒµåÀÎ µ¥ ÇöÀç ³ëµå°¡ Àбâ Àü¿ëÀÏ ¶§ NO_MODIFICATION_ALLOWD_ERR ¿¡·¯¸¦ ¹ß»ý½ÃÅ°¸ç ¹Ýȯ °ªÀº ¾ø´Ù.
6) NameNodeMap ÀÎÅÍÆäÀ̽º
NameNodeMap ÀÎÅÍÆäÀ̽º´Â NodeListÀÇ ±â´É°ú À¯»çÇѵ¥ À̸§À» ÀÌ¿ëÇÏ¿© ³ëµå¿¡ Á¢±ÙÇÏ°í NameNodeMapÀ» ±¸ÇöÇÏ´Â °´Ã¼¿¡ Æ÷ÇÔµÈ ¼Ó¼ºµéÀ» ÃßÃâÇÒ ¶§ »ç¿ëÇÑ´Ù.
(1) NameNodeMap ÀÎÅÍÆäÀ̽ºÀÇ Æ¯Â¡
Á¢±ÙÇÏ·Á´Â ³ëµåµéÀº À̸§°ú 0ºÎÅÍ ½ÃÀÛÇÏ´Â Á¤¼ö À妽º °ªÀ» ÀÌ¿ëÇØ ÃßÃâÇÒ ¼ö ÀÖ´Ù.
(2) NameNodeMap ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼Òµå
¢Ã Node getNamedItem(String name) : À̸§À» ÀÌ¿ëÇÏ¿© ÁöÁ¤µÈ ³ëµå¸¦ °Ë»öÇÏ°í, °Ë»öÇÒ ³ëµåÀÇ À̸§À» ÀÎÀÚ·Î °®´Â´Ù. ¹ÝȯµÇ´Â °ªÀº ÁöÁ¤µÈ À̸§À» °¡Áø ³ëµåÀ̸ç ÁöÁ¤µÈ À̸§ÀÌ ¸Ê¿¡¼ ¾î¶² ³ëµåµµ ÀÏÄ¡ ¾ÊÀ¸¸é null °ªÀ» ¹ÝȯÇÑ´Ù.
¢Ã Node removeNamedItem(String name) : Á¦°ÅµÉ ³ëµåÀÇ À̸§À» ÀÌÀÚ·Î °¡Áö¸ç À̸§¿¡ ÀÇÇØ ÁöÁ¤µÈ ³ëµå¸¦ Á¦°ÅÇÑ´Ù. ¸¸¾à µ¿ÀÏÇÑ À̸§ÀÇ ³ëµå°¡ ¾ø´Ù¸é null°ªÀ» ¹ÝȯÇÑ´Ù. ±×¸®°í ¸Ê Àüü¿¡ ÁöÁ¤ÇÑ À̸§ÀÇ ³ëµå°¡ ¾øÀ» ¶§ NOT_FOUND_ERR ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
¢Ã Node item(int index) : Á¤¼ö¸¦ ÀÎÀÚ·Î °¡Áö¸ç index¿¡ ÇØ´çÇÏ´Â Attr ³ëµå °´Ã¼¸¦ ¸®ÅÏÇÏ°í, index¿¡ ÇØ´çÇϴ Ư¼ºÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é null°ªÀ» ¸®ÅÏÇÑ´Ù. |