For Programmers: Free Programming Magazines  


Home > Archive > PHP Language > February 2007 > PHP5 DOM XML Dynamic Table Generation









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author PHP5 DOM XML Dynamic Table Generation
Chuy08

2007-02-08, 6:58 pm

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


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com