新聞中心
DOMê÷?¨ò?á???μμμ????-?á11£?ò??°??????·??êoí2ù×÷?aD???μμμ?·?·¨?£ê1ó?DOM£??a·¢è??±?éò?′′?¨XML?òHTML??μμ£?2ù×÷?ü??μ??á1?£????ó?¢DT??oíé?3y??μμ ?a???°?úèY?£?éò?′óè?o?±à3ìó???·??êDOM£?±???ê1ó?PHP 5 DOMà??1£??üê?PHPo?D?μ?ò?2?·?£?òò′?3yá?PHPía£?2?Dèòa°2×°???üèí?t?£

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,邢臺縣網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:邢臺縣等地區(qū)。邢臺縣做網(wǎng)站價格咨詢:028-86922220
DOMê÷?úμ?×??-XML?ü??1?·?£?è?£o
1?¢Document?úμ? -- ±íê?DOMDocument?ó?ú
2?¢Element?úμ? -- ±íê?DOMElement?ó?ú
3?¢Attribute?úμ? -- ±íê?DOMAttr?ó?ú
4?¢Comment?úμ? -- ±íê?DOMComment?ó?ú
5?¢Text?úμ? -- ±íê?DOMText?ó?ú
ìáè??a??
?aò?D??ú?ééüè?o?′óDOMê÷?Dìáè??a??oí?μ£?±???ê1ó?Book.xml×÷?aày×ó??DD?μ?÷£????úèYè???μ¥1?ùê??£
??μ¥1 Book.xml
- version="1.0" encoding="UTF-8" standalone="yes" ?>
XML Processing I John Smith Jr. HisOwnTM 111-222-333-4441 What is XML about ? XML (Extensible Markup Language) is a ... SAX SAX is a simple API for ... StAX Much powerful and flexible, StAX, is very... DOM DOM concept Starting to use DOM... First DOM application... Here it is your first DOM application... The end...
?è????±???ê1ó?μ?PHP′ú???1??°ü£?http://assets.devx.com/sourcecode/41975_oa_mainsource.zip£???Book.xmloí?1 ??°ü?a?1oó·??úí?ò??????????£
μúò???ê?àyó|ó?3ìDòê1ó?Book.xml??μμ£?ìáè?3?1?áaμ?ê÷£?è?oóê1ó?DOMElement?ó?úμ?getElementsByTagName·?·¨??ê?μúò???×ó?úμ?êμày£o
DOMNodeList DOMElement::getElementsByTagName(string $name)£o?a??·?·¨·μ???ùóD$name2?êy???¨μ?±ê????μ?×ó?a???£????μ?ày×ó2é?ò
- // ′′?¨ò?????μμêμày
- $doc = new DOMDocument();
- //??è?Book.xml???t
- $doc->load( 'Book.xml' );
- //ê1ó?book±ê???????÷?ùóD?a??
- $books = $doc->getElementsByTagName( "book" );
- //ê1ó?author±ê???????÷?ùóD?a??
- $authors = $doc->getElementsByTagName( "author" );
- //·μ??μúò???±ê?????aauthorμ??a??
- $author = $authors->item(0)->nodeValue;
- //ò?publisher±ê???????÷?ùóD?a??
- $publishers = $doc->getElementsByTagName( "publisher" );
- //·μ??μúò????òμ?μ?±ê?????apublisherμ??a??
- $publisher = $publishers->item(0)->nodeValue;
- //???÷±ê?????anameμ??ùóD?a??
- $titles = $doc->getElementsByTagName( "name" );
- //·μ??±ê?????anameμ?μúò????òμ?μ??a??
- $title = $titles->item(0)->nodeValue;
- //′òó??òμ?μ??μ
- echo "$title - $author - $publisher \n";
- ?>
×?oóò?DDê?′òó?μúò???±êìa£?μúò???×÷??£?μúò???3?°?éì£?ê1ó?á?×?·?·???£?ê?3?£o
XML Processing I - John Smith Jr. - HisOwnTM
μY1é?ˉààDOMê÷
òò?aXML??μμ?á11?Dò???±ê???éò?°üà¨áíò???±ê??£¨·??§ê÷£?£?ê£???íê?ò?×ó?úμ?£?òò′????éò??ˉààíê??μ?ê÷?ò′óè?o??úμ??aê?μY1é?ˉàà×óê÷ ?£????μ?ày×óê?′óè?o??aê??úμ?£¨$node£??ˉàà????μ?XML×óê÷£?2¢áD3??úμ?μ???×?oí?μ?£
- function getNodesInfo($node)
- {
- if ($node->hasChildNodes())
- {
- $subNodes = $node->childNodes;
- foreach ($subNodes as $subNode)
- {
- if (($subNode->nodeType != 3) ||
- (($subNode->nodeType == 3) &&
- (strlen(trim($subNode->wholeText))>=1)))
- {
- echo "Node name: ".$subNode->nodeName."\n";
- echo "Node value: ".$subNode->nodeValue."\n";
- }
- getNodesInfo($subNode);
- }
- }
- }
é???μ?ày×óê1ó?????μ?ì??tè¥3yá??ùóD????±??úμ?£?è?ê?3??′?eà′?ü?é??£o
- if (($subNode->nodeType != 3) ||
- (($subNode->nodeType == 3) &&
- (strlen(trim($subNode->wholeText))>=1)))
?°??μ?′ú???ì2é?úμ?ê?·?±?′|àí£?í??ù£????éò?éè???¤?¨ò?μ?preserveWhiteSpaceê?D?£??üò?3yè?óàμ???°×£???è??μê?TRUE?£
?aá?2aê??a??1|?ü£??????a??ày×ó′?μYBook.xml??μμμ??ù?úμ???μY1éoˉêygetNodesInfo£?è?oó′òó?3?????DOMê÷μ?±ê??oí?μ£o
- //′′?¨ò?????μμêμày
- $doc = new DOMDocument();
- //??è?Book.xml???t
- $doc->load( 'Book.xml' );
- //éè?????óê÷?ù
- $root = $dom->firstChild;
- // μY1éoˉêyáD3?×óê÷μ??ùóD?úμ?
- function getNodesInfo($node)
- {
- if ($node->hasChildNodes())
- {
- $subNodes = $node->childNodes;
- foreach ($subNodes as $subNode)
- {
- if (($subNode->nodeType != 3) ||
- (($subNode->nodeType == 3)
- &&(strlen(trim($subNode->wholeText))>=1)))
- {
- echo "Node name: ".$subNode->nodeName."\n";
- echo "Node value: ".$subNode->nodeValue."\n";
- }
- getNodesInfo($subNode);
- }
- }
- }
- //μ÷ó?getNodesInfooˉêy
- getNodesInfo($root);
- ?>
í?1??ê?á?ê?3?μ?D?2?·??úèY
í?- 1??μμ?úèY£o?a??í???ê?á?í¨1ygetNodesInfoμY1éoˉêy??DDBook.xmlμ?2?·?ê?3??úèY
#p#
???óD??úμ?
DOMNode?ó?ú°üà¨?à??′′?¨D??úμ?oí?úDOMê÷?D2?è??úμ?μ?·?·¨£?è?1?òa′′?¨ò???D??úμ?£??éò?ê1ó?createElement?òcreateTextNode·?·¨£?è?oó £??aá????óò???D??úμ?μ?DOMê÷é?£??éò?μ÷ó?appendChild?òinsertBefore·?·¨£?appendChild·?·¨???óò???D?μ?×ó?úμ?μ?ì??¨?úμ?μ?×ó?úμ?áD±íμ?oó??£??? insertBefore·?·¨ê??úì??¨?úμ?μ??°??2?è?ò????úμ??£
????ê??aD?·?·¨μ??-Dí£o
1?¢DOMElement createElement(string $name [, string $value ]) £o?a??·?·¨′′?¨á?ò???DOMElementààμ?êμày£?$name2?êy±íê?D??a??μ?±ê????£?$value2?êy ±íê??a??μ??μ£???ò2?éò?é?oóê1ó?DOMElement->nodeValueê?D????μ?£
2?¢DOMText createTextNode(string $content)£o?a??·?·¨′′?¨á?ò???DOMTextààμ?êμày£?$content2?êy±íê?D?μ???±??úμ?μ???±??úèY?£
3?¢DOMNode DOMNode::appendChild(DOMNode $newnode)£o?a??oˉêyà??1á???óD×ó?úμ????2$newnode2?êy£??ò′′?¨ò???D?μ?°üà¨???¨?úμ?μ?×ó?úμ?áD±í?£
4?¢DOMNode DOMNode::insertBefore(DOMNode $newnode [,DOMNode $refnode])£o?a??·?·¨?ú$refnode?úμ??°2?è?$newnode2?êy£?è?1?$refnode?úμ??aê§£?D?μ? ?úμ??íìí?óμ??úμ?μ?×ó?úμ?áD±í?°?£
????μ?ày×ó′′?¨á?ò???
- //′′?¨ò???D??a??
- $newElement = $dom->createElement('bibliography','Martin Didier, Professional XML');
- //ê1ó?appendChildoˉêy????×·?óμ??ù?úμ?
- //μ÷ó?appendChildoˉêy
- appendNewChild($root,$newElement);
- //?a??oˉêy×·?óá?ò???D?μ?×ó?úμ?
- function appendNewChild($currentNode, $node)
- {
- $currentNode->appendChild($node);
- }
è?1???í¨1ygetNodeInfo()oˉêy??DDμ?3??á1?£??????á?′μ?è?í?2?ùê?μ?ê?3??£
í?- 2 ×·?óμ??úμ?£o?a??í???ê?á?D??óμ?
????μ?ày×óê??ú
- //′′?¨ò???D?μ?
?a?? - $newElement = $dom->createElement('foreword',
- 'What I love about this book is that it '.
- 'grew out of just such a process, '.
- 'and shows it on every page.');
- //éè??òyó??úμ?
- $allContents = $dom->getElementsByTagName('publisher');
- $contents = $allContents->item(0);
- //μ÷ó?insertNewChildoˉêy
- insertNewChild($contents,$newElement);
- //?a??oˉêy2?è?ò???D?μ?×ó?úμ?×÷?a $currentNodeμ?μúò???×ó?úμ?
- function insertNewChild($currentNode, $node)
- {
- $currentNode->insertBefore(
- $node, $currentNode->firstChild);
- }
í¨1ygetNodesInfo??DDDT??oóμ???μμ£???ê?D?μ??úμ?£?è?í?3?ùê??£
í?- 3 2?è??úμ?£o?a??í?????ê?á??ú
?úμ?????
????ò????úμ?òa??×?′′?¨ò???oíμ±?°?úμ?ò??£ò??ùμ??úμ?£??????úμ?ê±ê1ó?cloneNode·?·¨?£
DOMNode DOMNode::cloneNode([ bool $deep])£o′′?¨μ±?°μ?????£?$deep2?êy???¨ê?·?òa??±′μ±?°?úμ?μ?×ó?úμ?£?????è??μê?false?£????μ?ê?ày′ú????ê?????
- //éè??òyó??úμ?
- $author = $root->getElementsByTagName('author')->item(0);
- //μ÷ó?cloningNodeoˉêy
- cloningNode($author);
- //?a??oˉêy????$currentNode
- function cloningNode($currentNode)
- {
- $clonenode = $currentNode -> cloneNode(true);
- $newnode = $currentNode->appendChild($clonenode);
- }
í?- 4 ?????úμ?£o????
#p#
ò?3y×ó?úμ?
ê1ó?removeChild·?·¨′óDOMê÷?Dò?3y×ó?úμ??£
DOMNode DOMNode::removeChild(DOMNode $oldnode)£o?a??oˉêyò?3yò???×ó?úμ?£?$oldnode2?êy??3?òaò?3yμ?×ó?úμ??£????μ?ê?ày′ú??′óBook.xml??μμ?Dò?3y×ó ?úμ?£?′óí?5?D??ê?μ?ê?3??úèY?éò??′μ?bibliography?úμ???ê§á??£
í?- 5 ò?3y?úμ?£oò?3y×?oóò???×ó?úμ?
ì????úμ?
?aá?ó?ò???D??úμ?ì???ò?óDμ??úμ?£?ê1ó?replaceChild·?·¨?£
DOMNode DOMNode::replaceChild(DOMNode $newnode, DOMNode $oldnode)£o?a??oˉêyê1ó?$newnode×ó?úμ?ì???$oldnode?úμ??£
àyè?£??ùéè????ó?D?μ?code×ó?úμ?ì???ISBN×ó?úμ?£o
- //??è?ISBN?úμ?
- $element = $dom->getElementsByTagName('ISBN')->item(0);
- //′′?¨D?μ?
?a??- $code = $dom->createElement('code', '909090');
- //μ÷ó?replacingNodeoˉêy
- replacingNode($code,$element);
- //?a??oˉêyê1ó?$nodeì???$currentNode
- function replacingNode($currentNode, $node)
- {
- $node->parentNode->replaceChild($currentNode, $node);
- }
í?6?D??ê?μ?ê?3??úèY±í?÷?úμ?±?ì???á?
í?- 6 ì????úμ?£o?aà???ê?μ?ê?ó?D?μ??úμ?ì???
μ?è??úμ?
ê1ó?importNode·?·¨′óáíò???ê÷??±′ò????úμ?μ?μ±?°μ?ê÷?£
DOMNode DOMDocument::importNode(DOMNode $importedNode [,bool $deep])£o?a??·?·¨′óáíò???XML??μμμ?è?ò????úμ?£?è?oó2?è?μ±?°??μμμ?DOMê÷?D£? $importedNode2?êy??3?á?òaμ?è?μ??úμ?£?μ?è?μ??úμ?±íê??-ê??úμ?μ?ò?·Y??±′£?òò′?μ?è?2ù×÷2??áDT??ía2?ê÷£?$deep2?êy????ê?·?μ?è?±?μ?è??úμ?μ?é??è£??μ?a TRUEê±£?μ?è?íê??μ??úμ?×óê÷£??aFALSEê±£???μ?è??úμ?±?éí?£
????μ?ê?ày′óBook_continue.xml???tμ?è?
- version="1.0" encoding="UTF-8" standalone="yes" ?>
XPath XPath is language for... - This chaper is a bonus to...
- ]]>
cap_I="click_here_for_chapter_I" - cap_II="click_here_for_chapter_II"
- cap_III="click_here_for_chapter_III"
- cap_IV="click_here_for_chapter_IV"
- cap_V="click_here_for_chapter_V" />
- ????ê?μ?è?
?úμ?μ?′ú??£o - $olddoc = new DOMDocument;
- $olddoc->load("Book_continue.xml");
- //?ò??μ?è?μ?ò???D???μμμ??úμ?
- $node = $olddoc->getElementsByTagName("continue")->item(0);
- $newnewdoc = new DOMDocument;
- $newdoc->formatOutput = true;
- $newdoc->load("Book.xml");
- //μ?è??úμ??°???ùóD×ó?úμ?μ???μμ
- $node = $newdoc->importNode($node, true);
- //è?oó×·?óμ??ù?úμ?
- $newdoc->documentElement->appendChild($node);
- echo "\nThe 'new document' after copying the nodes into it:\n";
- $root = $newdoc->firstChild;
- function getNodesInfo($node)
- {
- if ($node->hasChildNodes())
- {
- $subNodes = $node->childNodes;
- foreach ($subNodes as $subNode)
- {
- if (($subNode->nodeType != 3) ||
- (($subNode->nodeType ==3) &&
- (strlen(trim($subNode->wholeText))>=1)))
- {
- echo "Node name: ".$subNode->nodeName."\n";
- echo "Node value: ".$subNode->nodeValue."\n";
- }
- getNodesInfo($subNode);
- }
- }
- }
- getNodesInfo($root);
- ?>
í?7??ê??°??′ú??μ?ê?3?
í?- 7 μ?è??úμ?£o?aà???ê?á?′óBook_continue.xmlμ?è??úμ?2¢×·?óμ?Book.xmloóμ??ù×ó
?ì2é?úμ?μ?μèí?D?
?ì2éá????úμ?ê?·??àí?ê1ó?isSameNode·?·¨?£
bool DOMNode::isSameNode(DOMNode $node)£oμ±?úμ?ê??àμèμ?ê±oò£??a??oˉêy·μ??ò???2????μTRUE£?·??ò·μ??FALSE£?$node2?êy±íê???òaoíμ±?°?úμ???DD±è?? μ??úμ??£
×¢òa±è??2?ê??ùóú?úμ?μ??úèY??DDμ?£o
- //?ì2éá????úμ?ê?·??àí?
- $author1 = $root->getElementsByTagName('autor')->item(0);
- $author2 = $root->getElementsByTagName('autor')->item(1);
- //μ÷ó?verifyNodesoˉêy
- verifyNodes($author1,$author2);
- function verifyNodes($currentNode, $node)
- {
- if (($currentNode->isSameNode($node))==true)
- {
- echo "These two nodes are the same";
- }
- }
′′?¨D?μ?ê÷
PHP 5 DOMà??1?éò?è???′óá??aê?11?¨DOMê÷£?????μ?ê?ày′′?¨á?ò???è?D?μ?XML??μμ£?ê1ó?á?á???D?oˉêy′′?¨×¢êíoíCDATA?úμ??£
1?¢DOMComment DOMDocument::createComment(string $data)£o′′?¨ò???D?μ?×¢êí?úμ?£?$data2?êy±íê??úμ?μ??úèY?£
2?¢DOMCDATASection DOMDocument::createCDATASection(string $data)£o′′?¨ò???D?μ?CDATA?úμ?£?$data2?êy±íê??úμ?μ??úèY?£
- //′′?¨ò?????μμêμày
- $document = new DOMDocument();
- //ê1ó???????ê??ˉê?3?
- $document->formatOutput = true;
- //′′?¨ò???×¢êí
- $comment = $document->createComment('Beautiful flowers!!!');
- $document->appendChild( $comment );
- //′′?¨
?ù?a?? - $root = $document->createElement( 'flowers' );
- $document->appendChild( $root );
- //′′?¨
×ó?úμ? - $tulips = $document->createElement( 'tulips' );
- //′′?¨
?a??μ?μúò???×ó?úμ? £?2¢éè????ê?D? - $bulbs_1 = $document->createElement( 'bulbs' );
- $bulbs_1->setAttribute('price','? 7.65');
- $bulbs_1->appendChild($document->createTextNode( 'Parrot'));
- $tulips->appendChild( $bulbs_1 );
- //′′?¨
?a??μ?μú?t??×ó?úμ? £?2¢éè????ê?D? - $bulbs_2 = $document->createElement( 'bulbs' );
- $bulbs_2->setAttribute('color','magenta');
- $bulbs_2->appendChild($document->createTextNode( 'Lily flowering' ));
- $tulips->appendChild( $bulbs_2 );
- //×·?ó
?úμ?μ??ù?úμ?oó - $root->appendChild( $tulips );
- //′′?¨CDATAD??ú
- $cdata = $document->createCDATASection(
- '
Sword Lily'. - '
Starface'); - $document->appendChild( $cdata );
- //±£′????óê÷μ?Flowers.xml
- echo $document->saveXML();
- $document->save('Flowers.xml');
- ?>
- D?μ?Flower.xml??μμ?úèYè???£o
- version="1.0" encoding="ISO-8859-1"?>
price="? 7.65">Parrot color="magenta">Lily flowering Sword Lily Starface - ]]>
??μ¥2?Dμ?′ú??′′?¨á?ò??????óê÷£?2¢????±£′??aFlowers.xml?£
??μ¥2 ′′?¨ò???D?μ?DOMê÷
±????òμ¥?ééüá?PHP 5 DOMà??1£?2¢?ééüè?o?ê1ó??ü2ù×÷XML£¨?òHTML£???μμ£?ò??°è?o?′óá?′′?¨ò???DOMê÷?£
??±à?-í?????
- 1úíaó?D??a?′PHP?¨??3ìDòò?àà
- PHP 5.3£o??′óóú?a·¢???¤?úμ???′ó°?±?
- PHPnow1.5.3???? - ?ìé?PHP?·?3°ü
- ?3ì?è?o?′??¨IIS+PHP+JSP+MySQL?·?3
- ?a·¢à?ê?ì?Windows??ì¨μ?PHPó|ó??a·¢
文章題目:淺談如何利用PHP訪問和操作DOM
當(dāng)前URL:http://m.fisionsoft.com.cn/article/dhhsccd.html


咨詢
建站咨詢
