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

前端之家收集整理的这篇文章主要介绍了如何使用Twig模块从XML中删除注释前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 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.

猜你在找的XML相关文章