我有一个XML文件。文件中有一些空白行。如何只删除空白行?我尝试了chomp()
方法,发现它将删除所有新的线符号。我仍然需要输出标准的XML文件格式。
while(my $line = <$fh>) {
#chomp($line);
#$line =~ s/\s+//g;
print $line;
}
__DATA__
<item>
<key>AB</key>
<info>
<format>10</format>
<description>Any binary string</description>
<value>NA</value>
<whereUsed>A2B25,A2B26</whereUsed>
</info>
</item>
预期下方的输出表格。
<item>
<key>AB</key>
<info>
<format>10</format>
<description>Any binary string</description>
<value>NA</value>
<whereUsed>A2B25,A2B26</whereUsed>
</info>
</item>
答案 0 :(得分:8)
在你的循环中,在打印之前:</ p>
next unless $line =~ /\S/;
答案 1 :(得分:3)
只有在具有非空格字符时才能打印该行:
while(my $line = <DATA>) {
print $line if ($line=~/\S/);
}
答案 2 :(得分:2)
老实说,我不建议使用chomp
执行此操作,而是使用解析器解析和重新格式化XML。
use XML::Twig;
XML::Twig->new( 'pretty_print' => 'indented_a' )->parse( \*DATA )->print;
这将读取,验证您的XML并重新格式化输出。