vietboy505
Technical User
I want my PErl to output the content of XML to HTML table like this:
address.xml
address2.pl
I just need how to fix my foreach loop. Any help?
Code:
<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:
<?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:
#!/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?