У меня есть XML-файл, и я хочу его прочитать - удалить узел - сохранить его. я бегу Perl из терминала (Perl script.pl)perl - удалить узел из xml-файла
пример XML (filename.xml):
<?xml version="1.0" encoding="UTF-8"?>
<twice>
<inner>
<twice>
<name>John</name>
<surname>Smith</surname>
</twice>
<twice>
<name>Alan</name>
<surname>Bowler</surname>
</twice>
<twice>
<name>Michael</name>
<surname>Deck</surname>
</twice>
</inner>
</twice>
пример сценария Perl (script.pl):
use strict;
use warnings;
use XML::LibXML;
my $filename = "filename.xml";
my $parser = XML::LibXML->new();
my $xmldoc = $parser->parse_file($filename);
for my $dead ($xmldoc->findnodes(q{/twice/inner/twice[surname = "Bowler"]})) {
$dead->unbindNode;
}
print $xmldoc->toString;
Теперь выводит ожидаемый результат в терминале, но без сохранения файла.
Ожидаемый результат (filename.xml):
<?xml version="1.0" encoding="UTF-8"?>
<twice>
<inner>
<twice>
<name>John</name>
<surname>Smith</surname>
</twice>
<twice>
<name>Michael</name>
<surname>Deck</surname>
</twice>
</inner>
</twice>
Я искал в течение многих часов и не смогли найти ничего, жаль, если это дубликат!
Это мой первый опыт работы с perl, поэтому, пожалуйста, любая помощь будет приветствоваться, спасибо.
То есть нечетное, она удалена Боулер записывает для меня. Или вы имеете в виду, что он отлично печатает на терминале, но не сохраняет файл filename.xml? – Nate
точно, он не сохраняет файл – dimmageiras