On Jan 17, 2008 5:53 AM, Allam Reddy, Thomas <[EMAIL PROTECTED]> wrote:
snip
> I have got an xml like this below. I want to read this file in Perl and
> want to retrieve the text which end with .xml.
>
> For example , I want to print the text "jms/hppjmsmodules-jms.xml",
> since it ends with .xml
snip
> <descriptor-file-name>jms/hppjmsmodules-jms.xml</descriptor-file-name>
snip
There is a quick and dirty way and a right way. The quick and dirty
way (which is prone to errors) is
perl -ne 'print "$1\n" if m{([-/.\w]+[.]xml)}' file.xml
The right way is to use an XML parser and look for the contents of the
descriptor-file-name tag.
#!/usr/bin/perl
use strict;
use warnings;
use XML::Twig;
my $t = XML::Twig->new(
twig_handlers => {
'descriptor-file-name' => sub {
print $_->text, "\n";
}
}
);
$t->parsefile($_) for @ARGV;
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/