chuy08 Posted February 8, 2007 Share Posted February 8, 2007 Given the following XML Doc <Consumer> <Programs> <Program> <Title>30 Year</Title> <author>Juan Rodriguez</author> <publisher>abc</publisher> </Program> <Program> <Title>20 Year</Title> <author>Albert Rodriguez</author> <publisher>abc</publisher> </Program> <Program> <Title>10 Year</Title> <author>Jose Guzman</author> <publisher>xyz</publisher> </Program> How could I construct a table like the following: Title | Author | ABC Publishing | 30 Year | Juan Rodriguez | 20 Year | Albert Rodriguez | XYZ Publishing 10 Year | Jose Guzman | Currently I can build a dynamic table using the following but I can't figure out how to only print out the publisher once as a heading for all the products that match it, and then when a new publisher is detected print a new header and output all matching published products beneath that. $file = 'results.xml'; // Loading the results into a new DomDocument $dom1 = new DOMDocument('1.0', 'ISO-8859-1'); $dom1->load($file, LIBXML_NOBLANKS); <?php echo("<TR>"); echo("<TH></TH>"); echo("<TH>Title</TH>"); echo("<TH>Author</TH>"); echo("<TH>Publisher</TH>"); $root = $dom1->documentElement; $title = $dom1->getElementsByTagName("Title"); $author = $dom1->getElementsByTagName("Author"); $publisher = $dom1->getElementsByTagName("Publisher"); $length = $title->length; for ($x=0; $x < $length; $x++) { echo "<TR><TD>".$title->item($x)->nodeValue."</TD>"; echo "<TD>".$author->item($x)->nodeValue."</TD>"; echo "<TD>".$publisher->item($x)->nodeValue."</TD></TR>"; The above code actually outputs Title | Author | Publisher Link to comment https://forums.phpfreaks.com/topic/37634-php5-xml-help/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.