删除Perl中xml文件的第一行

时间:2015-10-27 12:01:01

标签: xml perl

您好我有一个XML文件,我想使用Perl删除它的第一行并将其替换为只有一个单词。你能让我知道如何管理吗?

例如,让'我们有一个XML文件,其中包含一些行:

<SquishReport version="2.1" xmlns="http://www.froglogic.com/XML2">
<test name="test">
.
.
.

在删除并添加所需的行后,我会:

<SquishReport>
<test name="test">
.
.

1 个答案:

答案 0 :(得分:3)

使用XML::Twig

替换&#34;根元素+属性&#34;只需&#34;根元素&#34;:

#!/usr/bin/env perl
use strict;
use warnings;

use XML::Twig;

my $twig = XML::Twig -> parse ( \*DATA );
$twig -> root -> del_atts;
$twig -> set_pretty_print('indented_a');
$twig -> print;

__DATA__
<SquishReport version="2.1" xmlns="http://www.froglogic.com/XML2">
<test name="test"> </test>
</SquishReport>

打印:

<SquishReport>
  <test name="test"> </test>
</SquishReport>

注意 -

$twig -> set_pretty_print('indented_a');

可以更改文件内容 - 来自XML::Twig上的文档:

  

警告:此选项使文档格式正确但可能使其无效(不符合其DTD)。

因此,关闭漂亮的印刷品是一个值得关注的问题。