浅谈如何利用PHP访问和操作DOM

DOMÊ÷¶¨ÒåÁËÎĵµµÄÂß¼­½á¹¹£¬ÒÔ¼°¿ØÖÆÄã·ÃÎʺͲÙ×÷ÕâЩÎĵµµÄ·½·¨¡£Ê¹ÓÃDOM£¬¿ª·¢ÈËÔ±¿ÉÒÔ´´½¨XML»òHTMLÎĵµ£¬²Ù×÷ËüÃǵĽá¹û£¬Ôö¼Ó¡¢Ð޸ĺÍɾ³ýÎĵµ ÔªËؼ°ÄÚÈÝ¡£¿ÉÒÔ´ÓÈκαà³ÌÓïÑÔ·ÃÎÊDOM£¬±¾ÎÄʹÓÃPHP 5 DOMÀ©Õ¹£¬ËüÊÇPHPºËÐĵÄÒ»²¿·Ö£¬Òò´Ë³ýÁËPHPÍ⣬²»ÐèÒª°²×°ÆäËüÈí¼þ¡£

成都创新互联公司是一家专注于成都网站制作、成都网站建设与策划设计,邢台县网站建设哪家好?成都创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:邢台县等地区。邢台县做网站价格咨询:028-86922220

DOMÊ÷½Úµã×ñÑ­XMLÃüÃû¹æ·¶£¬È磺

1¡¢Document½Úµã -- ±íʾDOMDocument½Ó¿Ú

2¡¢Element½Úµã -- ±íʾDOMElement½Ó¿Ú

3¡¢Attribute½Úµã -- ±íʾDOMAttr½Ó¿Ú

4¡¢Comment½Úµã -- ±íʾDOMComment½Ó¿Ú

5¡¢Text½Úµã -- ±íʾDOMText½Ó¿Ú

ÌáÈ¡ÔªËØ

ÕâһС½Ú½éÉÜÈçºÎ´ÓDOMÊ÷ÖÐÌáÈ¡ÔªËغÍÖµ£¬±¾ÎÄʹÓÃBook.xml×÷ΪÀý×Ó½øÐÐ˵Ã÷£¬ÆäÄÚÈÝÈçÇåµ¥1Ëùʾ¡£

Çåµ¥1 Book.xml

 
 
 
 
  1.  version="1.0" encoding="UTF-8" standalone="yes" ?> 
  2.  
  3.  
  4.  XML Processing I 
  5.   John Smith Jr. 
  6.   HisOwnTM 
  7.   111-222-333-4441 
  8.    
  9.      
  10.       </strong>What is XML about ?<strong> 
  11.       XML (Extensible Markup Language) is a ... 
  12.      
  13.      
  14.       </strong>SAX<strong> 
  15.       SAX is a simple API for ... 
  16.     
  17.      
  18.       </strong>StAX<strong> 
  19.       Much powerful and flexible, StAX, is very... 
  20.      
  21.      
  22.       </strong>DOM </li> <li>        <strong><subtitle></strong>DOM concept  </li> <li>          <strong><continut></strong>Starting to use DOM...<strong></continut></strong> </li> <li>        <strong></subtitle></strong> </li> <li>        <strong><subchapter_IV_I></strong> </li> <li>         <strong><title></strong>First DOM application...<strong> 
  23.            Here it is your first DOM application... 
  24.           
  25.                     
  26.                
  27.     The end...           
  28.    
  29.  
  30.  

ÏÈÏÂÔر¾ÎÄʹÓõÄPHP´úÂëѹËõ°ü£¬http://assets.devx.com/sourcecode/41975_oa_mainsource.zip£¬½«Book.xmlºÍѹ Ëõ°ü½âѹºó·ÅÔÚͬһ¸öĿ¼Ï¡£

µÚÒ»¸öʾÀýÓ¦ÓóÌÐòʹÓÃBook.xmlÎĵµ£¬ÌáÈ¡³ö¹ØÁªµÄÊ÷£¬È»ºóʹÓÃDOMElement½Ó¿ÚµÄgetElementsByTagName·½·¨ÏÔʾµÚÒ»¸ö×Ó½ÚµãʵÀý£º

DOMNodeList DOMElement::getElementsByTagName(string $name)£ºÕâ¸ö·½·¨·µ»ØËùÓÐ$name²ÎÊýÖ¸¶¨µÄ±êÇ©ÃûµÄ×ÓÔªËØ¡£ÏÂÃæµÄÀý×Ó²éÕÒ¸ù½Úµã £¬È»ºó²éÕÒËüµÄ×ӽڵ㠣¬ºÍ ÔªËØ£¬Ñ¡Ôñÿ¸ö×Ó½ÚµãµÄµÚÒ»¸ö£¬×îºó´òÓ¡ÕâЩ½ÚµãµÄÖµ£º

 
 
 
 
  1.  
  2.  // ´´½¨Ò»¸öÎĵµÊµÀý  
  3.   $doc = new DOMDocument();  
  4.   //ÔØÈëBook.xmlÎļþ  
  5.   $doc->load( 'Book.xml' );  
  6.   //ʹÓÃbook±êÇ©ÃûËÑË÷ËùÓÐÔªËØ  
  7.   $books = $doc->getElementsByTagName( "book" );  
  8.   //ʹÓÃauthor±êÇ©ÃûËÑË÷ËùÓÐÔªËØ  
  9.   $authors = $doc->getElementsByTagName( "author" );  
  10.   //·µ»ØµÚÒ»¸ö±êÇ©ÃûΪauthorµÄÔªËØ  
  11.   $author = $authors->item(0)->nodeValue;  
  12.   //ÒÔpublisher±êÇ©ÃûËÑË÷ËùÓÐÔªËØ 
  13.   $publishers = $doc->getElementsByTagName( "publisher" );  
  14.   //·µ»ØµÚÒ»¸öÕÒµ½µÄ±êÇ©ÃûΪpublisherµÄÔªËØ  
  15.    $publisher = $publishers->item(0)->nodeValue;  
  16.   //ËÑË÷±êÇ©ÃûΪnameµÄËùÓÐÔªËØ 
  17.   $titles = $doc->getElementsByTagName( "name" );  
  18.   //·µ»Ø±êÇ©ÃûΪnameµÄµÚÒ»¸öÕÒµ½µÄÔªËØ  
  19.   $title = $titles->item(0)->nodeValue;  
  20.   //´òÓ¡ÕÒµ½µÄÖµ  
  21.   echo "$title - $author - $publisher \n";  
  22.  ?> 

×îºóÒ»ÐÐÊÇ´òÓ¡µÚÒ»¸ö±êÌ⣬µÚÒ»¸ö×÷Õߣ¬µÚÒ»¸ö³ö°æÉÌ£¬Ê¹ÓÃÁ¬×Ö·û·Ö¸ô£¬Êä³ö£º

XML Processing I - John Smith Jr. - HisOwnTM

µÝ¹éä¯ÀÀDOMÊ÷

ÒòΪXMLÎĵµ½á¹¹ÖÐÒ»¸ö±êÇ©¿ÉÒÔ°üÀ¨ÁíÒ»¸ö±êÇ©£¨·ÖÖ§Ê÷£©£¬Ê£Ï¾ÍÊÇÒ¶×ӽڵ㣬Òò´ËÄã¿ÉÒÔä¯ÀÀÍêÕûµÄÊ÷»ò´ÓÈκνڵ㿪ʼµÝ¹éä¯ÀÀ×ÓÊ÷ ¡£ÏÂÃæµÄÀý×ÓÊÇ´ÓÈκοªÊ¼½Úµã£¨$node£©ä¯ÀÀÏÂÃæµÄXML×ÓÊ÷£¬²¢Áгö½ÚµãµÄÃû×ÖºÍÖµ¡£

 
 
 
 
  1. function getNodesInfo($node)  
  2. {  
  3.    if ($node->hasChildNodes())  
  4.    {  
  5.       $subNodes = $node->childNodes; 
  6.       foreach ($subNodes as $subNode)  
  7.       { 
  8.          if (($subNode->nodeType != 3) ||   
  9.             (($subNode->nodeType == 3) &&  
  10.             (strlen(trim($subNode->wholeText))>=1)))     
  11.          {  
  12.             echo "Node name: ".$subNode->nodeName."\n";  
  13.             echo "Node value: ".$subNode->nodeValue."\n";  
  14.          }  
  15.          getNodesInfo($subNode);           
  16.       }  
  17.    }         
  18. }    

ÉÏÃæµÄÀý×ÓʹÓÃÏÂÃæµÄÌõ¼þÈ¥³ýÁËËùÓпÕÎı¾½Úµã£¬ÈÃÊä³ö¿´ÆðÀ´¸ü¸É¾»£º

 
 
 
 
  1. if (($subNode->nodeType != 3) ||   
  2.    (($subNode->nodeType == 3) &&  
  3.    (strlen(trim($subNode->wholeText))>=1)))    

Ç°ÃæµÄ´úÂë¼ì²é½ÚµãÊÇ·ñ±»´¦Àí£¬Í¬Ñù£¬Äã¿ÉÒÔÉèÖÃÔ¤¶¨ÒåµÄpreserveWhiteSpaceÊôÐÔ£¬ËüÒƳýÈßÓàµÄ¿Õ°×£¬Ä¬ÈÏÖµÊÇTRUE¡£

ΪÁ˲âÊÔÕâ¸ö¹¦ÄÜ£¬ÏÂÃæÕâ¸öÀý×Ó´«µÝBook.xmlÎĵµµÄ¸ù½Úµã¸øµÝ¹éº¯ÊýgetNodesInfo£¬È»ºó´òÓ¡³öÕû¸öDOMÊ÷µÄ±êÇ©ºÍÖµ£º

 
 
 
 
  1.  
  2. //´´½¨Ò»¸öÎĵµÊµÀý   
  3. $doc = new DOMDocument();  
  4. //ÔØÈëBook.xmlÎļþ  
  5. $doc->load( 'Book.xml' );   
  6. //ÉèÖöÔÏóÊ÷¸ù   
  7. $root = $dom->firstChild;  
  8. // µÝ¹éº¯ÊýÁгö×ÓÊ÷µÄËùÓÐ½Úµã  
  9. function getNodesInfo($node)  
  10. {  
  11.    if ($node->hasChildNodes())  
  12.    {  
  13.       $subNodes = $node->childNodes;  
  14.      foreach ($subNodes as $subNode)  
  15.       {  
  16.          if (($subNode->nodeType != 3) ||   
  17.             (($subNode->nodeType == 3)    
  18.             &&(strlen(trim($subNode->wholeText))>=1)))     
  19.          {  
  20.          echo "Node name: ".$subNode->nodeName."\n";  
  21.          echo "Node value: ".$subNode->nodeValue."\n";  
  22.      }  
  23.       getNodesInfo($subNode);           
  24.       }  
  25.    }        
  26. }     
  27. //µ÷ÓÃgetNodesInfoº¯Êý  
  28. getNodesInfo($root);  
  29. ?> 

 Í¼1ÏÔʾÁËÊä³öµÄС²¿·ÖÄÚÈÝ

ͼ- 1ÎĵµÄÚÈÝ£ºÕâ¸öͼÏÔʾÁËͨ¹ýgetNodesInfoµÝ¹éº¯ÊýÔËÐÐBook.xmlµÄ²¿·ÖÊä³öÄÚÈÝ

#p#

Ôö¼Óнڵã

DOMNode½Ó¿Ú°üÀ¨¶à¸ö´´½¨Ð½ڵãºÍÔÚDOMÊ÷ÖвåÈë½ÚµãµÄ·½·¨£¬Èç¹ûÒª´´½¨Ò»¸öнڵ㣬¿ÉÒÔʹÓÃcreateElement»òcreateTextNode·½·¨£¬È»ºó £¬ÎªÁËÔö¼ÓÒ»¸öнڵ㵽DOMÊ÷ÉÏ£¬¿ÉÒÔµ÷ÓÃappendChild»òinsertBefore·½·¨£¬appendChild·½·¨Ôö¼ÓÒ»¸öеÄ×ӽڵ㵽Ìض¨½ÚµãµÄ×Ó½ÚµãÁбíµÄºóÃ棬¶ø insertBefore·½·¨ÊÇÔÚÌض¨½ÚµãµÄÇ°Ãæ²åÈëÒ»¸ö½Úµã¡£

ÏÂÃæÊÇÕâЩ·½·¨µÄÔ­ÐÍ£º

1¡¢DOMElement createElement(string $name [, string $value ]) £ºÕâ¸ö·½·¨´´½¨ÁËÒ»¸öDOMElementÀàµÄʵÀý£¬$name²ÎÊý±íʾÐÂÔªËصıêÇ©Ãû£¬$value²ÎÊý ±íʾԪËصÄÖµ£¬ÄãÒ²¿ÉÒÔÉÔºóʹÓÃDOMElement->nodeValueÊôÐÔÆäÖµ¡£

2¡¢DOMText createTextNode(string $content)£ºÕâ¸ö·½·¨´´½¨ÁËÒ»¸öDOMTextÀàµÄʵÀý£¬$content²ÎÊý±íʾеÄÎı¾½ÚµãµÄÎı¾ÄÚÈÝ¡£

3¡¢DOMNode DOMNode::appendChild(DOMNode $newnode)£ºÕâ¸öº¯ÊýÀ©Õ¹ÁËÏÖÓÐ×Ó½Úµãĩβ$newnode²ÎÊý£¬»ò´´½¨Ò»¸öеİüÀ¨Ö¸¶¨½ÚµãµÄ×Ó½ÚµãÁÐ±í¡£

4¡¢DOMNode DOMNode::insertBefore(DOMNode $newnode [,DOMNode $refnode])£ºÕâ¸ö·½·¨ÔÚ$refnode½ÚµãÇ°²åÈë$newnode²ÎÊý£¬Èç¹û$refnode½Úµã¶ªÊ§£¬Ð嵀 ½Úµã¾ÍÌí¼Óµ½½ÚµãµÄ×Ó½ÚµãÁбíÇ°¡£

ÏÂÃæµÄÀý×Ó´´½¨ÁËÒ»¸ö½Úµã£¬²¢½«Æä×·¼Óµ½½ÚµãµÄĩβ£º

 
 
 
 
  1. //´´½¨Ò»¸öÐÂÔªËØ   
  2. $newElement = $dom->createElement('bibliography','Martin Didier, Professional XML');  
  3. //ʹÓÃappendChildº¯Êý½«Æä×·¼Óµ½¸ù½Úµã  
  4. //µ÷ÓÃappendChildº¯Êý  
  5. appendNewChild($root,$newElement);  
  6. //Õâ¸öº¯Êý×·¼ÓÁËÒ»¸öеÄ×Ó½Úµã  
  7. function appendNewChild($currentNode, $node)  
  8. {  
  9.    $currentNode->appendChild($node);  

Èç¹ûÄãͨ¹ýgetNodeInfo()º¯ÊýÔËÐеóö½á¹û£¬Ä㽫»á¿´µ½Èçͼ2ËùʾµÄÊä³ö¡£

ͼ- 2 ×·¼ÓµÄ½Úµã£ºÕâ¸öͼÏÔʾÁËмӵĽڵãºÍËüµÄÄÚÈÝ

ÏÂÃæµÄÀý×ÓÊÇÔÚ½ÚµãÔö¼ÓÒ»¸ö×ӽڵ㣺

 
 
 
 
  1. //´´½¨Ò»¸öеÄÔªËØ  
  2. $newElement = $dom->createElement('foreword',  
  3.    'What I love about this book is that it '.  
  4.    'grew out of just such a process, '.  
  5.    'and shows it on every page.');  
  6. //ÉèÖÃÒýÓÃ½Úµã  
  7. $allContents = $dom->getElementsByTagName('publisher');  
  8. $contents = $allContents->item(0);  
  9. //µ÷ÓÃinsertNewChildº¯Êý   
  10. insertNewChild($contents,$newElement);  
  11. //Õâ¸öº¯Êý²åÈëÒ»¸öеÄ×Ó½Úµã×÷Ϊ $currentNodeµÄµÚÒ»¸ö×Ó½Úµã  
  12. function insertNewChild($currentNode, $node)  
  13. {  
  14.    $currentNode->insertBefore(  
  15.       $node, $currentNode->firstChild);     

ͨ¹ýgetNodesInfoÔËÐÐÐ޸ĺóµÄÎĵµ£¬ÏÔʾеĽڵ㣬Èçͼ3Ëùʾ¡£

ͼ- 3 ²åÈë½Úµã£ºÕâÕÅͼƬÏÔʾÁËÔÚ½ÚµãÇ°²åÈëÁË×Ó½Úµã

½Úµã¿Ë¡

¿Ë¡һ¸ö½ÚµãÒâζ×Å´´½¨Ò»¸öºÍµ±Ç°½ÚµãһģһÑùµÄ½Úµã£¬¿Ë¡½ÚµãʱʹÓÃcloneNode·½·¨¡£

DOMNode DOMNode::cloneNode([ bool $deep])£º´´½¨µ±Ç°µÄ¿Ë¡£¬$deep²ÎÊýÖ¸¶¨ÊÇ·ñÒª¿½±´µ±Ç°½ÚµãµÄ×ӽڵ㣬ÆäĬÈÏÖµÊÇfalse¡£ÏÂÃæµÄʾÀý´úÂëÏÔʾ¿Ë¡ ÔªËØ£¬²¢×÷ΪԴԪËصÄ×ӽڵ㣬ͼ4ÏÔʾÁËÊä³öÄÚÈÝ£º

 
 
 
 
  1. //ÉèÖÃÒýÓÃ½Úµã  
  2. $author = $root->getElementsByTagName('author')->item(0);  
  3. //µ÷ÓÃcloningNodeº¯Êý  
  4. cloningNode($author);   
  5. //Õâ¸öº¯Êý¿Ë¡$currentNode  
  6. function cloningNode($currentNode)  
  7.    {  
  8.       $clonenode = $currentNode -> cloneNode(true);  
  9.       $newnode = $currentNode->appendChild($clonenode);     
  10.    } 

ͼ- 4 ¿Ë¡½Úµã£º¿Ë¡×ӽڵ㲢½«Æä·ÅÔÚÔ´½ÚµãÏ£¬Ô´½ÚµãµÄÎı¾Öµ±ä³ÉÁ½·ÝÁË£¬ÒòΪ¼ìË÷½ÚµãµÄÎı¾ÖµÊ±Ò²¼ìË÷ÁËÆä×Ó½ÚµãµÄ Öµ

#p#

ÒƳý×Ó½Úµã

ʹÓÃremoveChild·½·¨´ÓDOMÊ÷ÖÐÒƳý×ӽڵ㡣

DOMNode DOMNode::removeChild(DOMNode $oldnode)£ºÕâ¸öº¯ÊýÒƳýÒ»¸ö×ӽڵ㣬$oldnode²ÎÊýÖ¸³öÒªÒƳýµÄ×ӽڵ㡣ÏÂÃæµÄʾÀý´úÂë´ÓBook.xmlÎĵµÖÐÒƳý×Ó ½Úµã£¬´Óͼ5ÖÐÏÔʾµÄÊä³öÄÚÈÝ¿ÉÒÔ¿´µ½bibliography½ÚµãÏûʧÁË¡£

ͼ- 5 ÒƳý½Úµã£ºÒƳý×îºóÒ»¸ö×Ó½Úµãºó£¬ÖØÐÂÁгöÁ˽ڵãµÄÃû³ÆÖµ£¬ÏÔʾ½Úµãȷʵ±»ÒƳýÁË

Ìæ»»½Úµã

ΪÁËÓÃÒ»¸öнڵãÌæ»»ÒÑÓеĽڵ㣬ʹÓÃreplaceChild·½·¨¡£

DOMNode DOMNode::replaceChild(DOMNode $newnode, DOMNode $oldnode)£ºÕâ¸öº¯ÊýʹÓÃ$newnode×Ó½ÚµãÌæ»»$oldnode½Úµã¡£

ÀýÈ磬¼ÙÉèÄãÏëÓÃеÄcode×Ó½ÚµãÌæ»»ISBN×ӽڵ㣺

 
 
 
 
  1. //»ñÈ¡ISBN½Úµã  
  2. $element = $dom->getElementsByTagName('ISBN')->item(0);   
  3. //´´½¨ÐµÄÔªËØ   
  4. $code = $dom->createElement('code', '909090');  
  5. //µ÷ÓÃreplacingNodeº¯Êý   
  6. replacingNode($code,$element);  
  7. //Õâ¸öº¯ÊýʹÓÃ$nodeÌæ»»$currentNode   
  8. function replacingNode($currentNode, $node)  
  9. {  
  10.    $node->parentNode->replaceChild($currentNode, $node);     

ͼ6ÖÐÏÔʾµÄÊä³öÄÚÈݱíÃ÷½Úµã±»Ìæ»»ÁË

ͼ- 6 Ìæ»»½Úµã£ºÕâÀïÏÔʾµÄÊÇÓÃеĽڵãÌæ»»½ÚµãºóµÄÎĵµÄÚÈÝ

µ¼Èë½Úµã

ʹÓÃimportNode·½·¨´ÓÁíÒ»¸öÊ÷¿½±´Ò»¸ö½Úµãµ½µ±Ç°µÄÊ÷¡£

DOMNode DOMDocument::importNode(DOMNode $importedNode [,bool $deep])£ºÕâ¸ö·½·¨´ÓÁíÒ»¸öXMLÎĵµµ¼ÈëÒ»¸ö½Úµã£¬È»ºó²åÈ뵱ǰÎĵµµÄDOMÊ÷ÖУ¬ $importedNode²ÎÊýÖ¸³öÁËÒªµ¼ÈëµÄ½Úµã£¬µ¼ÈëµÄ½Úµã±íʾԭʼ½ÚµãµÄÒ»·Ý¿½±´£¬Òò´Ëµ¼Èë²Ù×÷²»»áÐÞ¸ÄÍⲿÊ÷£¬$deep²ÎÊý¿ØÖÆÊÇ·ñµ¼Èë±»µ¼Èë½ÚµãµÄÉî¶È£¬ÖµÎª TRUEʱ£¬µ¼ÈëÍêÕûµÄ½Úµã×ÓÊ÷£¬ÎªFALSEʱ£¬Ö»µ¼Èë½Úµã±¾Éí¡£

ÏÂÃæµÄʾÀý´ÓBook_continue.xmlÎļþµ¼Èë½Úµãµ½Book.xml£¬ÏÂÃæÊÇBook_continue.xmlÎĵµµÄÄÚÈÝ£º

 
 
 
 
  1.  version="1.0" encoding="UTF-8" standalone="yes" ?> 
  2.  
  3.  
  4.    
  5.    </strong>XPath<strong> 
  6.    XPath is language for... 
  7.    
  8.   
  9.      This chaper is a bonus to...  
  10.      ]]> 
  11.    cap_I="click_here_for_chapter_I"   
  12.     cap_II="click_here_for_chapter_II"     
  13.     cap_III="click_here_for_chapter_III" 
  14.     cap_IV="click_here_for_chapter_IV"   
  15.     cap_V="click_here_for_chapter_V" /> 
  16.  
  17. ÏÂÃæÊǵ¼Èë½ÚµãµÄ´úÂ룺  
  18.  
  19. $olddoc = new DOMDocument;  
  20. $olddoc->load("Book_continue.xml");  
  21. //ÎÒÏëµ¼Èëµ½Ò»¸öÐÂÎĵµµÄ½Úµã  
  22. $node = $olddoc->getElementsByTagName("continue")->item(0);  
  23. $newnewdoc = new DOMDocument;  
  24. $newdoc->formatOutput = true;  
  25. $newdoc->load("Book.xml");  
  26. //µ¼Èë½Úµã¼°ÆäËùÓÐ×ӽڵ㵽Îĵµ  
  27. $node = $newdoc->importNode($node, true);  
  28. //È»ºó×·¼Óµ½¸ù½Úµã  
  29. $newdoc->documentElement->appendChild($node);  
  30. echo "\nThe 'new document' after copying the nodes into it:\n";  
  31. $root = $newdoc->firstChild;  
  32. function getNodesInfo($node)  
  33. {  
  34.    if ($node->hasChildNodes())  
  35.    {  
  36.       $subNodes = $node->childNodes;  
  37.       foreach ($subNodes as $subNode)  
  38.       {  
  39.          if (($subNode->nodeType != 3) ||   
  40.             (($subNode->nodeType ==3) &&  
  41.             (strlen(trim($subNode->wholeText))>=1)))     
  42.          {  
  43.          echo "Node name: ".$subNode->nodeName."\n";  
  44.          echo "Node value: ".$subNode->nodeValue."\n";  
  45.       }  
  46.       getNodesInfo($subNode);           
  47.       }  
  48.    }        
  49. }  
  50. getNodesInfo($root);     
  51. ?> 

ͼ7ÏÔʾǰÃæ´úÂëµÄÊä³ö

ͼ- 7 µ¼Èë½Úµã£ºÕâÀïÏÔʾÁË´ÓBook_continue.xmlµ¼Èë½Úµã²¢×·¼Óµ½Book.xmlºóµÄÑù×Ó

¼ì²é½ÚµãµÄµÈͬÐÔ

¼ì²éÁ½¸ö½ÚµãÊÇ·ñÏàͬʹÓÃisSameNode·½·¨¡£

bool DOMNode::isSameNode(DOMNode $node)£ºµ±½ÚµãÊÇÏàµÈµÄʱºò£¬Õâ¸öº¯Êý·µ»ØÒ»¸ö²¼¶ûÖµTRUE£¬·ñÔò·µ»ØFALSE£¬$node²ÎÊý±íʾÄãÒªºÍµ±Ç°½Úµã½øÐÐ±È½Ï µÄ½Úµã¡£

×¢Òâ±È½Ï²»ÊÇ»ùÓÚ½ÚµãµÄÄÚÈݽøÐеģº

 
 
 
 
  1. //¼ì²éÁ½¸ö½ÚµãÊÇ·ñÏàͬ  
  2. $author1 = $root->getElementsByTagName('autor')->item(0);  
  3. $author2 = $root->getElementsByTagName('autor')->item(1);  
  4. //µ÷ÓÃverifyNodesº¯Êý  
  5. verifyNodes($author1,$author2);  
  6. function verifyNodes($currentNode, $node)  
  7. {  
  8.    if (($currentNode->isSameNode($node))==true)  
  9.    {  
  10.       echo "These two nodes are the same";  
  11.    }     

´´½¨ÐµÄÊ÷

PHP 5 DOMÀ©Õ¹¿ÉÒÔÈÃÄã´ÓÁ㿪ʼ¹¹½¨DOMÊ÷£¬ÏÂÃæµÄʾÀý´´½¨ÁËÒ»¸öȫеÄXMLÎĵµ£¬Ê¹ÓÃÁËÁ½¸öк¯Êý´´½¨×¢ÊͺÍCDATA½Úµã¡£

1¡¢DOMComment DOMDocument::createComment(string $data)£º´´½¨Ò»¸öеÄ×¢Êͽڵ㣬$data²ÎÊý±íʾ½ÚµãµÄÄÚÈÝ¡£

2¡¢DOMCDATASection DOMDocument::createCDATASection(string $data)£º´´½¨Ò»¸öеÄCDATA½Úµã£¬$data²ÎÊý±íʾ½ÚµãµÄÄÚÈÝ¡£

 
 
 
 
  1.    
  2.   //´´½¨Ò»¸öÎĵµÊµÀý   
  3.   $document = new DOMDocument();  
  4.   //ʹÓÃËõ½ø¸ñʽ»¯Êä³ö  
  5.   $document->formatOutput = true;  
  6.   //´´½¨Ò»¸ö×¢ÊÍ  
  7.   $comment = $document->createComment('Beautiful flowers!!!');  
  8.   $document->appendChild( $comment );   
  9.   //´´½¨¸ùÔªËØ   
  10.   $root = $document->createElement( 'flowers' );  
  11.   $document->appendChild( $root );  
  12.   //´´½¨×Ó½Úµã  
  13.   $tulips = $document->createElement( 'tulips' );  
  14.   //´´½¨ÔªËصĵÚÒ»¸ö×ӽڵ㣬²¢ÉèÖÃÆäÊôÐÔ  
  15.    $bulbs_1 = $document->createElement( 'bulbs' );     
  16.   $bulbs_1->setAttribute('price','€ 7.65');  
  17.   $bulbs_1->appendChild($document->createTextNode( 'Parrot'));  
  18.   $tulips->appendChild( $bulbs_1 );  
  19.   //´´½¨ÔªËصĵڶþ¸ö×ӽڵ㣬²¢ÉèÖÃÆäÊôÐÔ  
  20.   $bulbs_2 = $document->createElement( 'bulbs' );      
  21.   $bulbs_2->setAttribute('color','magenta');  
  22.   $bulbs_2->appendChild($document->createTextNode( 'Lily flowering' ));  
  23.   $tulips->appendChild( $bulbs_2 );  
  24.   //×·¼Ó½Úµãµ½¸ù½Úµãºó  
  25.   $root->appendChild( $tulips );  
  26.   //´´½¨CDATAС½Ú  
  27.   $cdata = $document->createCDATASection(  
  28.     'Sword Lily'.  
  29.     'Starface');  
  30.   $document->appendChild( $cdata );   
  31.   //±£´æ¶ÔÏóÊ÷µ½Flowers.xml   
  32.   echo $document->saveXML();  
  33.   $document->save('Flowers.xml');  
  34. ?> 
  35. еÄFlower.xmlÎĵµÄÚÈÝÈçÏ£º  
  36.  version="1.0" encoding="ISO-8859-1"?> 
  37.  
  38.  
  39.    
  40.      price="€ 7.65">Parrot 
  41.      color="magenta">Lily flowering 
  42.    
  43.  
  44.  
  45.     Sword Lily  
  46.     Starface  
  47.     
  48. ]]> 

Çåµ¥2ÖеĴúÂë´´½¨ÁËÒ»¸ö¶ÔÏóÊ÷£¬²¢½«Æä±£´æΪFlowers.xml¡£

Çåµ¥2 ´´½¨Ò»¸öеÄDOMÊ÷

±¾Îļòµ¥½éÉÜÁËPHP 5 DOMÀ©Õ¹£¬²¢½éÉÜÈçºÎʹÓÃËü²Ù×÷XML£¨»òHTML£©Îĵµ£¬ÒÔ¼°ÈçºÎ´ÓÁã´´½¨Ò»¸öDOMÊ÷¡£

¡¾±à¼­ÍƼö¡¿

  1. ¹úÍâÓÅÐ㿪ԴPHP½¨Õ¾³ÌÐòÒ»ÀÀ
  2. PHP 5.3£ºÔ¶´óÓÚ¿ª·¢ÕßÔ¤ÆÚµÄÖØ´ó°æ±¾
  3. PHPnow1.5.3ÏÂÔØ - ÂÌÉ«PHP»·¾³°ü
  4. dz̸ÈçºÎ´î½¨IIS+PHP+JSP+MySQL»·¾³
  5. ¿ª·¢ÀÏÊÖ̸Windowsƽ̨µÄPHPÓ¦Óÿª·¢

网站栏目:浅谈如何利用PHP访问和操作DOM
分享网址:http://www.shufengxianlan.com/qtweb/news26/71426.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联