XML があり、ヘッダーの先頭に「-」があり、その下にタグ値があります。「_」を何も (NULL) に置き換えて、XML の 2 行目を削除する必要があります。<HEADER ASOF_DATE="2/15/2013" CREATE_DATE="2/17/2013" RECORDS="5">
XMLの各レコードのNAME列またはSHORT_DESC列の下に「&」がある場合とない場合があります..NAME列に存在する場合は「$$$」に置き換えてファイルを保存する必要があります...
以下はXMLファイルです..
- <HEADER>
- <HEADER ASOF_DATE="2/15/2013" CREATE_DATE="2/17/2013" RECORDS="5">
- <TAG>
<SHORT_DESC>XXX & CO MTN RegS</SHORT_DESC>
<NAME>XXX & CO</NAME>
</TAG>
- <TAG>
<SHORT_DESC>XYZ & DEV</SHORT_DESC>
<NAME>XYZ & DEVELOP</NAME>
</TAG>
- <TAG>
<SHORT_DESC>AB&C INC</SHORT_DESC>
<NAME>AB&C INC</NAME>
</TAG>
- <TAG>
<SHORT_DESC>AAA BBB & COMPANY</SHORT_DESC>
<NAME>AAA BBB & COMPANY</NAME>
</TAG>
- <TAG>
<SHORT_DESC>ABC XYZ</SHORT_DESC>
<NAME>ABC XYZ</NAME>
</TAG>
- </HEADER>
o/p は ..
<HEADER>
<TAG>
<SHORT_DESC>XXX $$$ CO MTN RegS</SHORT_DESC>
<NAME>XXX $$$ CO</NAME>
</TAG>
<TAG>
<SHORT_DESC>XYZ $$$ DEV</SHORT_DESC>
<NAME>XYZ $$$ DEVELOP</NAME>
</TAG>
<TAG>
<SHORT_DESC>AB$$$C INC</SHORT_DESC>
<NAME>AB$$$C INC</NAME>
</TAG>
<TAG>
<SHORT_DESC>AAA BBB $$$ COMPANY</SHORT_DESC>
<NAME>AAA BBB $$$ COMPANY</NAME>
</TAG>
<TAG>
<SHORT_DESC>ABC XYZ</SHORT_DESC>
<NAME>ABC XYZ</NAME>
</TAG>
</HEADER>
以下はコードです...しかし、変更を含むxmlファイルを保存していません
#!/usr/bin/perl
use strict;
use warnings;
my $tag = 'SHORT_DESC';
open my $fh, '<test.xml' or die $!;
foreach (<$fh>) {
s/&/@@@/g;
s/- //g;
print $_;
}
close $fh;