<?php$xml =<<<EOT<?xml version="1.0"?><root><section name="Section1"> <category id="Category1" name="google"> <arti name="article1"> <p>any html code here</p> <b>my name is so so</b> </arti> <arti name="article2">value2</arti> <arti name="article3">value3</arti> <arti name="article4">value4</arti> </category> <category id="Category2" name="yahoo"> <arti name="articleSection2">Test value</arti> </category></section><section name="Section2"> <category id="category1_of_section2" name="msn"> <arti name="article2">value1</arti> <arti name="article3">value2</arti> </category> <category id="Category2_of_section2" name="webcare"> <arti name="param3">value4</arti> </category></section></root>EOT;$dom = new DomDocument;$dom->preserveWhiteSpace = FALSE;$dom->loadXML($xml);$params = $dom->getElementsByTagName('section'); // Find Sections $k=0;foreach ($params as $param) //go to each section 1 by 1 { echo "Section Attribute :-> ".$params->item($k)->getAttribute('name')."<br>"; //get section attribute $params2 = $params->item($k)->getElementsByTagName('category'); //digg categories with in Section $i=0; // values is used to iterate categories foreach ($params2 as $p) { echo " - Category Attribute Name :-> ".$params2->item($i)->getAttribute('name')."<br>"; //get Category attributes $params3 = $params2->item($i)->getElementsByTagName('arti'); //dig Arti into Categories $j=0;//values used to interate Arti foreach ($params3 as $p2) { echo " - Article Attribute Name : ".$params3->item($j)->getAttribute('name').""; //get arti atributesecho " Value : ".$params3->item($j)->nodeValue."<br>"; //get Node value ; $j++; } $i++; }$k++; }?>output : Section Attribute :-> Section1 - Category Attribute Name :-> google - Article Attribute Name : article1 Value : any html code heremy name is so so - Article Attribute Name : article2 Value : value2 - Article Attribute Name : article3 Value : value3 - Article Attribute Name : article4 Value : value4 - Category Attribute Name :-> yahoo - Article Attribute Name : articleSection2 Value : Test valueSection Attribute :-> Section2 - Category Attribute Name :-> msn - Article Attribute Name : article2 Value : value1 - Article Attribute Name : article3 Value : value2 - Category Attribute Name :-> webcare - Article Attribute Name : param3 Value : value4
摘抄:php.net