我正在处理一个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