Я создаю XML-файл с XML::Writer в Perl, и я бы хотел, чтобы каждый раз, когда я вызываю свой скрипт, он пишет новый XML-файл в начале старый файл. Я знаю, как писать строку в начале файла, но с XML :: Writer я не могу найти, как это сделать.Как написать в верхней части XML-файла с XML :: Writer
my $output = new IO::File(">>tmp.xml");
my $writer = new XML::Writer(
OUTPUT => $output,
DATA_INDENT => 3, # indentation, trois espaces
DATA_MODE => 1, # changement ligne.
);
Это начало моего сценария, который пишет файл xml. Edit: я на самом деле сделать changelog.xml Wich выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="changelog.xsl" type="text/xsl"?>
<root text="MultiDiag">
<version number="V: 7.07.10.0" date="Release date (Fri Oct 7 14:44:52 2016)">
Things
</version>
</root>
То, что я хочу, чтобы каждый день, новый список изменений, пишут в верхней части старого типа, что:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="changelog.xsl" type="text/xsl"?>
<root text="MultiDiag">
<version number="V: 7.07.10.0" date="Release date (The new one)">
Things
</version>
<version number="V: 7.07.10.0" date="Release date (The old one)">
Things
</version>
</root>
Спасибо за помощь.
Добро пожаловать в Переполнение стека и тег Perl. Можете ли вы привести пример того, как вы хотите, чтобы ваш результат был таким? Вы можете отредактировать свой вопрос. Обычно в одном файле есть одна структура данных XML. Во всем есть элемент. Непонятно, что вы имеете в виду, написав сверху. – simbabque
Это почти по определению неверный XML, потому что у вас не будет правильных корневых тегов. – Sobrique
Пожалуйста, не используйте косвенные обозначения объекта. В какой-то момент вы будете путешествовать по ошибке, которую она вызывает, и будут тратить часы, пытаясь ее найти. Вместо 'new IO :: File (..)' и 'new XML :: Writer (...)', вы должны использовать 'IO :: File-> new (...)' и 'XML :: Writer -> новый (...) '. –