当前位置 : 主页 > 网页制作 > xml >

如何使用Twig模块从XML中删除注释

来源:互联网 收集:自由互联 发布时间:2021-06-13
我正在使用 XML :: Twig模块从 XML文件中删除所有注释.示例文件可以是 – ?xml version="1.0" encoding="UTF-8"?Node_Anode A content 1!-- One Line Comment A1--![CDATA[this portion within the two comments is beingREMOVED wh
我正在使用 XML :: Twig模块从 XML文件中删除所有注释.示例文件可以是 –

<?xml version="1.0" encoding="UTF-8"?>
<Node_A>
node A content 1
<!-- One Line Comment A1-->
<![CDATA[this portion within the two comments is being
REMOVED which is not the intention]]>
<!-- Two Line Comment
Two Line Comment-->
node A content 3
<!-- Two Line Comment
Two Line Comment-->
<![CDATA[this portion within the two comments is being
REMOVED which is not the intention]]>
<!-- Two Line Comment
Two Line Comment-->
<![CDATA[
this portion is fine]]>

<Node_B> node B content
<Node_C> node c content
</Node_C>
<!-- One Line Comment -->
some data one
<!-- Multi  Line Comment
Line 3Comment
1Line Comment
2Line Comment
Line 5Comment
Line Comment-->
some data again two 
<!-- Multi  Line Comment
Line 3Comment
Line 5Comment
Line Comment-->

few more
</Node_B>

</Node_A>

我用过的脚本像 –

#!/usr/bin/perl 

use strict;
use warnings;
use XML::Twig;
my $infile = 'demo.xml';
my $twig = XML::Twig->new (comments => 'drop', pretty_print => 'indented')->parsefile($infile);
$twig->print ();

此脚本正在删除两条注释中的“CDATA”部分
这不是我的意图.
产出即将来临 –

<?xml version="1.0" encoding="UTF-8"?>
<Node_A>
node A content 1

<![CDATA[
this portion is fine]]><Node_B> node B content
<Node_C> node c content
</Node_C>

some data one

some data again two 


few more
</Node_B></Node_A>

我必须添加以保留所有CDATA部分和其他内容,只是为了
删除评论?

提前致谢.

当我使用您发布的demo.xml文件运行脚本时,我得到输出:

<?xml version="1.0" encoding="UTF-8"?>
<Node_A>
node A content 1

<![CDATA[this portion within the two comments is being
REMOVED which is not the intention]]>

node A content 3

<![CDATA[this portion within the two comments is being
REMOVED which is not the intention]]><![CDATA[
this portion is fine]]><Node_B> node B content
<Node_C> node c content
</Node_C>

some data one

some data again two


few more
</Node_B></Node_A>

哪个看起来对我好.我怀疑你有一个XML::Twig的错误版本(或XML::Parser,它取决于).我使用的是Perl 5.14.2,XML :: Twig 3.35和XML :: Parser 2.41.

网友评论