I'm trying to use XML to organize my Web bookmarks.
The first structure that comes to my mind is something
similar to:
<bookmark>
<link category="Perl" name="Perlmonks" url="http://www.perlmonks.org">
<description>Perl Monastery</description>
</link>
<link category="Perl" name="Perl.com" url="http://www.perl.com">
<description>Perl Official Site</description>
</link>
<link category="Macintosh" name="Macity" url="http://www.macity.it">
<description>Macintosh news site (italian resource)</description>
</link>
</bookmark>
It's
link-oriented, so when I want to add another link to
the file I can simply use another
<link> block filling
it with the appropriata informations. So far so good.
Now I'd like to use these XML file to produce a tree of HTML pages
containing my links organized by category. What I have to do
is to convert a link-oriented structure to a category-oriented
one.
I wrote this piece of code:
#!/usr/bin/perl
use strict;
use XML::Simple;
use Data::Dumper;
my $bookmark = XMLin( './links.xml' );
# print Dumper( $bookmark );
# Data structure conversion
my $bookmark_by_category = {};
foreach my $n (keys %{$bookmark->{link}}) {
push @{ $bookmark_by_category->{ $bookmark->{link}->{$n}->{'catego
+ry'} }}, {
'Name' => $n,
'Url' => $bookmark->{link}->{$n}->{'url'},
'Description' => $bookmark->{link}->{$n}->{'description'},
};
}
print Dumper( $bookmark_by_category );
It is simple but since:
- I'm new to XML manipulation
- It seems to me it's a standard problem so I guess there's a standard solution
- I don't want to pollute the environment with re-invented wheels...
I ask you if there's that
standard solution I was talking about above.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.