use Data::Dumper;
use XML::LibXML;
my $xml = q|
978-3-642-123456
Is Light Blue (azzurro) Color Name Universal in the Italian Language?
|;
my $doc = XML::LibXML->load_xml(string => $xml);
my @Publishers = $doc->findnodes('//Publisher');
for my $Publisher ( @Publishers ) {
my ($ChapterInfo) = $Publisher->findnodes('ChapterInfo');
my ($Title) = $ChapterInfo->findnodes('Title');
# get the Title node as literal XML
my $content = $Title->toString();
print "Title content:\n$content\n";
# remove first and last XML tags
$content =~ s/^<[^>]*>(.*)<[^>]*>$/$1/;
# construct the hash reference
my $hash = {
UniqueDOI => $Publisher->findvalue('UniqueDOI'),
ChapterInfo => {
ChapterType => $ChapterInfo->getAttribute('ChapterType'),
Title => {
Language => $Title->getAttribute('Language'),
content => $content,
},
},
};
print Dumper($hash);
}
####
Title content:
Is Light Blue (azzurro) Color Name Universal in the Italian Language?
$VAR1 = {
'UniqueDOI' => '978-3-642-123456',
'ChapterInfo' => {
'ChapterType' => 'OriginalPaper'
'Title' => {
'Language' => 'En',
'content' => 'Is Light Blue (azzurro) Color Name Universal in the Italian Language?'
},
},
};