From: xavier mas <[EMAIL PROTECTED]>
> I have a file with labels and a small text inside. When this text is
> different
> of a pattern text (n, for instance), this label must be deleted, for
> instance:
>
> <label>f</label>(more text)<label>n</label>(more text)<label>mpl</label>...
>
> (labels containing something different to 'n' must be deleted of the string.)
>
> How can I do this?
Yet another solution
use XML::Rules;
my $parser = XML::Rules->new(
style => 'filter',
rules => [
label => sub {
my ($tag, $attrs) = @_;
return if $attrs->{_content} ne 'n';
# skip if the content is not 'n'
return $tag => $attrs; # print it unmodified
}
]
);
$parser->filter( \*DATA, \$results);
print $results;
__DATA__
<root>
<some x="sdgdfg"><tag>sdfsdf</tag></some>
<label>f</label>(more text)<label>n</label>(more
text)<label>mpl</label>...
</root>
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed
to get drunk and croon as much as they like.
-- Terry Pratchett in Sourcery
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/