我有一个 XML,它在标题和标签值的开头有一个“-”以及一个空格。我需要将“_”替换为空(NULL)并删除 XML 的第二行,即<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;