我正在处理 XML 文档,我需要打开它并将同一行上的某些特定标记值转换为大写。如果我有相同的单词,它只会替换其中一个,尽管我使用了两个不同的 if 循环:这是我的 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 循环时,我找不到它不想转换同一个单词的逻辑。谢谢!