use strict; use warnings; use XML::LibXML; use Data::Dumper; my $parser = XML::LibXML->new({"encoding" => "utf-8"}); my $doc = $parser->parse_file("pm884843.xml"); my @paths = ( "/SiteStudioManifest/FragmentAssets/asset", "/SiteStudioManifest/SiteAssets/asset" ); for my $path (@paths) { my @url = map { $_->getAttributeNode("url")->getValue() } $doc->findnodes($path); print "URLs for $path:\n"; print "\t$_\n" for (@url); print "\n"; }