#!/usr/bin/env perl -l
use strict;
use warnings;
use XML::LibXML;
my $xml_file = 'pm_1149767_xml_parse.xml';
my $parser = XML::LibXML::->new();
my $doc = $parser->load_xml(location => $xml_file);
my $re = qr{%([^%]+)%};
for ($doc->findnodes('//span/text()')) {
print $1 while /$re/g;
}
####
%var%
####
%var%
####
%PN1%
%PN2%
%DIMMM%%DIMINCH%
%DIMMM%
%DIMINCH%
%DIMMM%garbage%DIMINCH%
%DIMMM%%%DIMINCH%
%DIMMM%%%%DIMINCH%
####
PN1
PN2
DIMMM
DIMINCH
DIMMM
DIMINCH
DIMMM
DIMINCH
DIMMM
DIMINCH
DIMMM
DIMINCH
####
for my $context ($doc->findnodes('//span')) {
print $context;
for my $text ($context->findnodes('text()')) {
print $text;
while ($text =~ /$re/g) {
print $1;
}
}
}
####
%PN1%
%PN1%
PN1
%PN2%
%PN2%
PN2
%DIMMM%%DIMINCH%
%DIMMM%%DIMINCH%
DIMMM
DIMINCH
%DIMMM%
%DIMINCH%
%DIMMM%
%DIMINCH%
DIMMM
DIMINCH
%DIMMM%garbage%DIMINCH%
%DIMMM%garbage%DIMINCH%
DIMMM
DIMINCH
%DIMMM%%%DIMINCH%
%DIMMM%%%DIMINCH%
DIMMM
DIMINCH
%DIMMM%%%%DIMINCH%
%DIMMM%%%%DIMINCH%
DIMMM
DIMINCH