Perl: XML output to HTML table

XML, Perl, Python, and other languages can be discussed here, even if it isn't PHP (We might forgive you).

Moderator: General Moderators

Post Reply
vietboy505
Forum Commoner
Posts: 53
Joined: Wed Feb 22, 2006 9:30 am

Perl: XML output to HTML table

Post by vietboy505 »

I want my PErl to output the content of XML to HTML table like this:

Code: Select all

<table border="1">
<tr>
<th>Type</th>
<th>Contact</th>
</tr>

<tr>
<td>Work</td>
<td><a href="../search.asp?ID=123456">John Doe</a></td>
</tr>

<tr>
<td></td>
<td><a href="../search.asp?ID=05789">Jack Doe</a></td>
</tr>

<tr>
<td>Relative</td>
<td><a href="../search.asp?ID=654321">Jane Doe</a></td>
</tr>

</table>
address.xml

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- Comment -->

<Address>
  <Work>
    <JohnDoe>
      <name>John Doe</name>
      <email>john@doe.com</email>
      <phone>555-555-5555</phone>
      <pager>6666666666</pager>
      <id>123456</id>
    </JohnDoe>
    <JackDoe>
      <name>Jack Doe</name>
      <email>jack@doe.com</email>
      <phone>666-666-6666</phone>
      <pager>7777777777</pager>
      <id>05789</id>
    </JackDoe>
  </Work>
  <Relative>
    <JaneDoe>
      <name>Jane Doe</name>
      <email>jane@doe.com</email>
      <phone>444-444-4444</phone>
      <pager>8888888888</pager>
      <id>654321</id>
    </JaneDoe>
  </Relative>
</Address>
address2.pl

Code: Select all

#!/usr/local/bin/perl

print "Content-Type: text/html\n\n";
use XML::Simple;
use Data::Dumper;

my $ref = XMLin('address.xml');

print('<table border="1">\n
<tr>\n
<th>Type</th>\n
<th>Contact</th>\n
</tr>\n');

foreach my $type (qw(Work Relative)) {
   foreach my $person (keys %{$ref->{$type}}) {
   	my $id=$ref->{$type}->{$person}->{id};
   	my $name=$ref->{$type}->{$person}->{name};
      print("<a href='../search.asp?ID=$id'>$name</a>");
   }
}
print('</table>');
I just need how to fix my foreach loop. Any help?
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

This isn't a Code Snippet, moved to Misc.
Post Reply