如何在Embperl中用CDDATA包装XML?

如何在Embperl中用CDDATA包装XML?,xml,perl,Xml,Perl,我有以下需要在页面中显示的XML代码($XML): <?xml version="1.0" encoding="UTF-8"?> <Contact name="test" course="maths"> </Contact> 而不是显示XML 我试图删除该行: <?xml version="1.0" encoding="UTF-8"?> 而且显示正确 我的问题是,我不能总是做上述步骤,因为在未来将有另一种格式 作为一个永久性的解决方案,我想

我有以下需要在页面中显示的XML代码(
$XML
):

<?xml version="1.0" encoding="UTF-8"?>
<Contact name="test" course="maths">
</Contact>
而不是显示XML

我试图删除该行:

<?xml version="1.0" encoding="UTF-8"?>

而且显示正确

我的问题是,我不能总是做上述步骤,因为在未来将有另一种格式

作为一个永久性的解决方案,我想将此xml包装到CDDATA中,并尝试使用perl,如:

$modified_xml = '<![CDATA['.$xml.']]>;
$modified_xml=”;
并显示错误,如:

XML Parsing Error: syntax error
<![CDATA[<?xml version="1.0" encoding="UTF-8"?><Contact name="test" course="maths"></Contact>]]>
XML解析错误:语法错误
]]>
错误与:

XML or text declaration not at start of entity at line 2, column 0, byte 1
但是:

<?xml version="1.0" encoding="UTF-8"?>
#!/usr/bin/perl
use strict;
use warnings;

use XML::Twig;

my $xml = '
<?xml version="1.0" encoding="UTF-8"?>
<Contact name="test" course="maths">
</Contact>';

XML::Twig -> parse ( $xml );
XML or text declaration not at start of entity at line 2, column 0, byte 1
my $xml = '<?xml version="1.0" encoding="UTF-8"?>
<Contact name="test" course="maths">
</Contact>';

XML::Twig -> parse ( $xml );
$xml =~ s/\A\s*//gms;