Я пытался извлечь определенный набор узлов из следующей структуры XML, используя XML :: Twig, но с тех пор застрял. Мне нужно извлечь узлы «игрока» из следующей структуры и выполнить строку match/replace для каждого из этих значений.Извлечение определенных узлов из XML с помощью XML :: Twig
<pep:record>
<agency type="player">
<subrecord type="scout">
<isnum>123XXX (print)</isnum>
<isnum>234YYY (mag)</isnum>
</subrecord>
<subrecord type="group">
</subrecord>
</agency>
</record>
Я пробовал использовать следующий код, но я указываю на ссылку хеша, а не на фактическую строку.
my $parser = XML::Twig->new(twig_handlers => {
isnum => sub { print $_->text."::" },
});
foreach my $rec (split(/::/, $parser->parse($my_xml))) {
if ($rec =~ m/print/) {
($print = $rec) =~ s/(\(print\))//;
}
elsif($rec =~ m/mag/) {
($mag = $rec) =~ s/(\(mag\))//;
}
}
Ваш пример XML не является полным. В нем нет ссылки ни на «player», ни на '::'. – simbabque
Упс! Виноват! неверно задана переменная. – pratz
Это не то, что я имел в виду. Я говорил о XML. В конце отсутствует '>', но вы также ссылаетесь на узлы 'player', но таких узлов в вашем XML нет. Нам нужен полный пример. – simbabque