2016-09-29 4 views
2

В моем XML-файле ввода мы делаем некоторые преобразования в perl. И нам нужно иметь xml-файл с отступом. Следовательно, мы используем модуль XML::Twig (простой способ) для довольно отступа.Как избежать изменения атрибута в xml при использовании XML :: Twig in perl

В Perl-код:

XML::Twig->new(pretty_print => 'indented') 
    ->parsefile($input) 
    ->print_to_file($input); 

Вход:
<contrib contrib-type="author" id="U94028797" corresp="yes">

После выполнения этой функции инструмент был перестановкой в ​​элементы XML-атрибута.

Выход:
<contrib contrib-type="author" corresp="yes" id="U94028797">

Любой дать предложение, чтобы избежать этого, и это было бы оценено. Заранее спасибо.

ответ

4

Используйте опцию keep_atts_order при создании прутика: docs

Вам нужно будет Tie::IxHash быть установлены.

Обратите внимание, что инструменты XML не должны заботиться о порядке атрибутов.

+0

... и это еще одна причина, по которой синтаксический анализ с регулярным выражением - это ужасная идея! :) – Sobrique

+1

@mirod: Awesome ... Его работа отлично. – ssr1012