Я работаю над XML-документом, мне нужно его открыть и преобразовать в верхний регистр некоторые определенные значения тегов в одной строке. Если у меня есть то же самое слово, которое он делает только замену одного из них, хотя я использую две разные, если петли: Это мой XML:Как я могу сделать замены одного и того же слова в Perl на одной и той же строке xml?
<pageID="1" width="827" height="1169" Sender_Company="société" Sender_Address="société" Sender_Fax="" Category="C2" Language_2="" Document_Object="" Language_1="french" Language_3="" NumPage="1" Script_1="typed">
Это мой код:
while (<FILEIN>) {
if ($_ =~ /pageID="1"/) {
$haschanged = 1;
if ($_ !~ /Sender_Address=""/) {
if ($_ =~ /(Sender_Address="(.*?)")/){
my $SenderAddress = $2;
$SenderAddress = uc($SenderAddress);
$_ =~ s/$1/Sender_Address="$SenderAddress"/;
}
}
if ($_ !~ /Sender_Company=""/) {
if ($_ =~ /(Sender_Company="(.*?)")/) {
my $SenderCompany = $2;
$SenderCompany = uc($SenderCompany);
$_ =~ s/$1/Sender_Company="$SenderCompany"/;
#print "$_\n";
}
}
}
}
Когда я использую два разных значения для Sender_Company="bla"
и Sender_Address="société"
, преобразование в верхний регистр работает, но когда я использую в этом случае одно и то же слово Sender_Company="société"
и Sender_Address="société"
, он не выполняет преобразование в верхний регистр. У кого-нибудь есть идеи? Я не могу найти логику, за которой он не хочет преобразовать одно и то же слово, когда я использую два разных цикла if за один раз. Спасибо!
Благодаря отступу вашего кода. Это поможет вам найти проблемы в целом, и это немного уважает читателей, когда вы обращаетесь за помощью. –
Он отлично работает для меня. – Toto
Используйте XML-синтаксический анализатор для управления XML. – Mat