Á¦8Àå. DOM

¹®¼­¿¡ ³ëµå Ãß°¡ ¹æ¹ý

 
¡¡ 1. ¹®¼­ ³»¿¡ ½Å±Ô ³ëµå ¸¸µé±â
  • [½Å±Ô »ý¼º] ¿¤¸®¸ÕÆ®³ëµå = ¹®¼­.createElement(¡°Å±×À̸§¡±)
  • [½Å±Ô »ý¼º] µ¥ÀÌÅͳëµå = ¹®¼­.createTextNode(¡°³ëµå°ª¡±)
  • [µ¥ÀÌÅÍ ºÙÀ̱â] ¿¤¸®¸ÕÆ®³ëµå.appendChild(µ¥ÀÌÅͳëµå)

2. ¿øÇÏ´Â ³ëµå ¹Ø¿¡ ºÙÀ̱â

  • [¿øÇÏ´Â À§Ä¡¿¡] ºÎ¸ð³ëµå.appendChild(½Å±Ô³ëµå)
                    ¶Ç´Â  ºÎ¸ð³ëµå.insertBefore(½Å±Ô³ëµå, ±âÁ¸³ëµå)
  • [»õ¹®¼­, Ư¼ö³ëµå] ¹®¼­.appendChild(½Å±Ô³ëµå)
3. ¼Ó¼º ¸¸µé±â
  • [½Å±Ô»ý¼º] ¼Ó¼º³ëµå = ¹®¼­.createAttribute(¡°¼Ó¼º¸í¡±)
  • [¼Ó¼º°ª ¼³Á¤] ¼Ó¼º³ëµå.nodeValue = ¡°¼Ó¼º°ª¡±
  • [¼Ó¼º Ãß°¡] ÇØ´ç³ëµå.attributes.setNamedItem(¼Ó¼º³ëµå)
      [¶Ç´Â] ÇØ´ç ³ëµå.setAttribute(¡°¼Ó¼º¸í¡±, ¡°¼Ó¼º°ª¡±)
 
 

Document °´Ã¼¿¡ ³ëµå Ãß°¡(½Å±Ô»ý¼º) ¸Þ¼Òµå

³ëµåÀÇ Ãß°¡ (Node, Document °´Ã¼ ¸Þ¼Òµå)

     cmt = xdoc.createComment("³ëµåÃß°¡");
     xdoc.insertBefore(cmt, xdoc.firstChild); alert('[xdoc] :\n'+xdoc.xml);
     xroot = xdoc.documentElement;  alert('[root] : '+xroot.nodeName);
     elmt = xdoc.createElement('list');  
     elmt.appendChild
    (xroot); alert('[elmt] :\n\n'+elmt.xml);
     xdoc.documentElement = elmt;  alert('[xdoc] :\n\n'+xdoc.xml);
     

³ëµåÀÇ »èÁ¦/¼öÁ¤ (Node, Document °´Ã¼ ¸Þ¼Òµå)

  • removeChild(child), replaceChild(child,toReplace)
     xdoc.loadXML( "<book> <title> XML ÀÔ¹® </title> <author> ÀÏÁö¸Å </author> </book>");
     xroot = xdoc.documentElement;
     elmt = xroot.firstChild;  node=elmt.removeChild(elmt); 
     alert('[»èÁ¦] :\n\n'+node.nodeValue); alert('[°á°ú] :\n\n'+xdoc.xml); 
     elmt = xroot.lastChild;  node=xroot.removeChild(elmt); 
     alert('[»èÁ¦] :\n\n'+node.xml); alert('[°á°ú] :\n\n'+xdoc.xml); 

¼Ó¼ºÀÇ Ãß°¡/»èÁ¦/¼öÁ¤ 

  • Document °´Ã¼ : createAttribute(¡°¼Ó¼º¸í¡±)
  • Attribute ³ëµå : nodeValue = ¡°¼Ó¼º°ª¡± 
    • nodeName, nodeValue, nodeType µî ¼Ó¼º
  • NamedNodeMap °´Ã¼ :
    • getNamedItem("¼Ó¼º¸í"), setNamedItem(¼Ó¼º³ëµå), removeNamedItem("¼Ó¼º¸í")
     xdoc.loadXML( "<book> ... </book>");
     elmt = xdoc.createElement('price');
     cur = xdoc.createAttribute('currency');  alert(cur.xml);
     elmt.attributes.setNamedItem(cur);  alert(elmt.xml);
     cur.nodeValue = 'won';  elmt.text = '33000';   alert(elmt.xml);
     stock = xdoc.createAttribute('InStock');
     stock.nodeValue=7;   alert(stock.xml);
     xroot = xdoc.documentElement;  xroot.appendChild(elmt); 
     xroot.attributes.setNamedItem(stock);  alert(xdoc.xml);
  • Element ³ëµå : 
    • setAttribute(¡°¼Ó¼º¸í¡±, ¡°¼Ó¼º°ª¡±), getAttribute(¡°¼Ó¼º¸í¡±), removeAttribute(¡°¼Ó¼º¸í¡±) 
     xdoc.loadXML( "<book> ... </book>");
     elmt = xdoc.createElement('price');
     elmt.setAttribute('currency','won');  elmt.text = '33000';   alert(elmt.xml);
     xroot = xdoc.documentElement;  xroot.appendChild(elmt); 
     xroot.setAttributes('InStock','7');  alert(xdoc.xml); 
     st1 = xroot.getAttribute('InStock');
     st2 = xroot.attributes.getNamedItem('InStock');
     alert('[1] '+st1+'\n[2] '+st2.xml);
     xroot.setAttribute('InStock','9');  alert(xroot.xml);
     xroot.removeAttribute('InStock');  alert(xdoc.xml); 

ÅؽºÆ® ³ëµå ´Ù·ç±â

  • length, data (text) ¼Ó¼º
  • substringData(offset, length); appendData(string); insertData(offset,string); 
    deleteData(offset,length); replaceData(offset,leng,string); 
    ¸Þ¼Òµå 
  • splitText(offset) ¸Þ¼Òµå
     xdoc.loadXML('<book> <title> XML ÀÔ¹® </title> <author> ÀÏÁö¸Å </author> </book>');
     xroot = xdoc.documentElement;
     tnode=xroot.firstChild.firstChild;  alert('[length] : '+tnode.length+'-------'+tnode.data);
     alert(tnode.substringData(5,1) +''+tnode.substringData(2,200));
     tnode.appendData('**'); tnode.insertData(5,'**'); alert(tnode.text);
     tnode.deleteData(5,2); tnode.replaceData(7,3,' #'); alert(tnode.data);

     xdoc.loadXML('<book> ... </book>');
     xroot = xdoc.documentElement;
     elmt = xroot.firstChild;  tnode=elmt.firstChild;  tnode.splitText(5);
     alert(elmt.xml+'------'+tnode.data+'-------'+elmt.lastChild.data);
     node = xmldoc.createElement('br');  elmt.insertBefore(node,elmt.lastChild);  alert(elmt.xml);

¹®¼­ÀÇ º¯È¯

  • transformNode(½ºÅ¸ÀϽÃÆ®)

    <HTML>
      ...
        <xml  id = "xdoc"> </xml>
        <xml  id = "xsldoc"> </xsl>
      ...
    </HTML>
      

     xdoc.async = false;
     xdoc.load('ex07a.xml'); alert(xdoc.xml);
     xsldoc.async = false;
     xsldoc.load('ex07a.xsl'); alert(xsldoc.xml);
     var newdoc =
       xdoc.transformNode(xsldoc.XMLDocument);
     alert(newdoc);
     document.write(newdoc);

¡¡