my %books;
my $twig= new XML::Twig(
twig_handlers => { book => \&books }
);
$twig->parse($xmlStr);
print Dumper(\%books);
exit;
sub books {
my ($twig, $book) = @_;
my $id = $book->att('id');
$books{$id}{'author' } = $book->first_child('author' )->text();
$books{$id}{'title' } = $book->first_child('title' )->text();
$books{$id}{'genre' } = $book->first_child('genre' )->text();
$books{$id}{'price' } = $book->first_child('price' )->text();
$books{$id}{'publish_date' } = $book->first_child('publish_date')->text();
}
####
use strict;
use warnings;
use XML::Twig;
use Data::Dumper;
my $xmlStr = <
Gambardella, Matthew
XML Developer's Guide
Computer
44.95
2000-10-01
An in-depth look at creating applications
with XML.
Ralls, Kim
Midnight Rain
Fantasy
5.95
2000-12-16
A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.
Corets, Eva
Maeve Ascendant
Fantasy
5.95
2000-11-17
After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.
Corets, Eva
Oberon's Legacy
Fantasy
5.95
2001-03-10
In post-apocalypse England, the mysterious
agent known only as Oberon helps to create a new life
for the inhabitants of London. Sequel to Maeve
Ascendant.
Corets, Eva
The Sundered Grail
Fantasy
5.95
2001-09-10
The two daughters of Maeve, half-sisters,
battle one another for control of England. Sequel to
Oberon's Legacy.
Randall, Cynthia
Lover Birds
Romance
4.95
2000-09-02
When Carla meets Paul at an ornithology
conference, tempers fly as feathers get ruffled.
Thurman, Paula
Splish Splash
Romance
4.95
2000-11-02
A deep sea diver finds true love twenty
thousand leagues beneath the sea.
Knorr, Stefan
Creepy Crawlies
Horror
4.95
2000-12-06
An anthology of horror stories about roaches,
centipedes, scorpions and other insects.
Kress, Peter
Paradox Lost
Science Fiction
6.95
2000-11-02
After an inadvertant trip through a Heisenberg
Uncertainty Device, James Salway discovers the problems
of being quantum.
O'Brien, Tim
Microsoft .NET: The Programming Bible
Computer
36.95
2000-12-09
Microsoft's .NET initiative is explored in
detail in this deep programmer's reference.
O'Brien, Tim
MSXML3: A Comprehensive Guide
Computer
36.95
2000-12-01
The Microsoft MSXML3 parser is covered in
detail, with attention to XML DOM interfaces, XSLT processing,
SAX and more.
Galos, Mike
Visual Studio 7: A Comprehensive Guide
Computer
49.95
2001-04-16
Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.
XML
my %books;
my $twig= new XML::Twig(
twig_handlers => { book => \&books }
);
$twig->parse($xmlStr);
print Dumper(\%books);
exit;
sub books {
my ($twig, $book) = @_;
my $id = $book->att('id');
$books{$id}{'author' } = $book->first_child('author' )->text();
$books{$id}{'title' } = $book->first_child('title' )->text();
$books{$id}{'genre' } = $book->first_child('genre' )->text();
$books{$id}{'price' } = $book->first_child('price' )->text();
$books{$id}{'publish_date' } = $book->first_child('publish_date')->text();
}
####
$VAR1 = {
'bk111' => {
'publish_date' => '2000-12-01',
'price' => '36.95',
'title' => 'MSXML3: A Comprehensive Guide',
'author' => 'O\'Brien, Tim',
'genre' => 'Computer'
},
'bk108' => {
'publish_date' => '2000-12-06',
'price' => '4.95',
'title' => 'Creepy Crawlies',
'author' => 'Knorr, Stefan',
'genre' => 'Horror'
},
'bk105' => {
'publish_date' => '2001-09-10',
'price' => '5.95',
'title' => 'The Sundered Grail',
'author' => 'Corets, Eva',
'genre' => 'Fantasy'
},
'bk102' => {
'publish_date' => '2000-12-16',
'price' => '5.95',
'title' => 'Midnight Rain',
'author' => 'Ralls, Kim',
'genre' => 'Fantasy'
},
'bk112' => {
'publish_date' => '2001-04-16',
'price' => '49.95',
'title' => 'Visual Studio 7: A Comprehensive Guide',
'author' => 'Galos, Mike',
'genre' => 'Computer'
},
'bk106' => {
'publish_date' => '2000-09-02',
'price' => '4.95',
'title' => 'Lover Birds',
'author' => 'Randall, Cynthia',
'genre' => 'Romance'
},
'bk107' => {
'publish_date' => '2000-11-02',
'price' => '4.95',
'title' => 'Splish Splash',
'author' => 'Thurman, Paula',
'genre' => 'Romance'
},
'bk103' => {
'publish_date' => '2000-11-17',
'price' => '5.95',
'title' => 'Maeve Ascendant',
'author' => 'Corets, Eva',
'genre' => 'Fantasy'
},
'bk104' => {
'publish_date' => '2001-03-10',
'price' => '5.95',
'title' => 'Oberon\'s Legacy',
'author' => 'Corets, Eva',
'genre' => 'Fantasy'
},
'bk109' => {
'publish_date' => '2000-11-02',
'price' => '6.95',
'title' => 'Paradox Lost',
'author' => 'Kress, Peter',
'genre' => 'Science Fiction'
},
'bk101' => {
'publish_date' => '2000-10-01',
'price' => '44.95',
'title' => 'XML Developer\'s Guide',
'author' => 'Gambardella, Matthew',
'genre' => 'Computer'
},
'bk110' => {
'publish_date' => '2000-12-09',
'price' => '36.95',
'title' => 'Microsoft .NET: The Programming Bible',
'author' => 'O\'Brien, Tim',
'genre' => 'Computer'
}
};