В Perl, как я могу изменить элемент в файле XML без изменения формата файла XML?
================================================================================

У меня есть XML-файл формата:

Я хочу изменить значение`Shanebond` к`Shane Bond`

Я использовал`XML::Simple`, но результатом был хэш.

Я хочу тот же формат, что и входной файл. Например: выходной файл должен быть следующим:

Пожалуйста, посоветуйте, как это сделать.

Заранее спасибо.

Я хочу, чтобы выходной файл был сохранен в том же каталоге и, если возможно, с тем же именем. Является ли это возможным?

[`XML::Simple`](http://search.cpan.org/perldoc/XML) имеет параметры, которые позволяют вам указать, как ввод будет преобразован в структуру данных Perl и как эта структура будет выводиться:

[`XML::Simple`](http://search.cpan.org/perldoc/XML) Это немного раздражает, если вы делаете что-то интересное, потому что его цель не в том, чтобы быть библиотекой XML общего назначения, а в том, чтобы предоставить простой способ работы с файлами конфигурации, написанными на XML.

CPAN имеет множество[XML связанные модули](http://search.cpan.org/search?query=XML&mode=module), Если это не единственная проблема, с которой вам приходилось сталкиваться, стоило бы рассмотреть некоторые из более способных и более подходящих модулей.



[XML :: Twig](http://search.cpan.org/dist/XML-Twig/) часто первый инструмент, который я смотрю, чтобы использовать.

Сначала я подумал, что это может быть излишним для вашего требования, но потом я заметил, что он идет с опцией parsefile\_inplace ():

NB. Если вы нене хочу сохранять файл резервной копии, затем удалите второй аргумент ('bak\_ *).



[XMLout с помощью OutputFile](http://search.cpan.org/~grantm/XML-Simple/lib/XML/Simple.pm#OutputFile_=%3E_%3Cfile_specifier%3E_#_out_-_handy)

Из документации по XML :: Simple:  
  

Поведение XMLout () по умолчанию - возвращать XML в виде строки. Если вы хотите записать XML в файл, просто укажите имя файла, используяВыходной файл' вариант.  
  
Эта опция также принимает объект дескриптора ввода-вывода, что особенно полезно в Perl 5.8.0 и более поздних версиях для вывода с использованием кодировки, отличной от UTF-8, например:



улярное выражение-заменить?

Это сделает замену на месте, сохраняя то же имя файла и все остальное.