我正在處理一個XML文檔,我需要打開它並在同一行上轉換爲大寫的一些特定標記值。如果我有相同的字,只負責替代其中的一個,雖然我使用的循環,如果兩個不同的: 這是我的XML:如何在同一個xml行中使用Perl替換相同的單詞?
<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循環時,不想轉換同一個單詞。謝謝!
感謝您的代碼正確縮進。這會幫助你發現一般問題,主要是當你尋求幫助時,這對讀者是一種尊重。 – 2013-03-18 12:00:38
它適合我。 – Toto 2013-03-18 12:13:34
使用XML解析器來處理XML。 – Mat 2013-03-18 12:22:38