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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.