in reply to "CDATA Parsing and XML"

If you just want the CDATA portion, there is really no point to use DOM. Instead, use XML::Parser or XML::Parser::Expat, and do something like this:
use XML::Parser::Expat; use strict; my $xml_string; open(FOO, "test.xml") or die "failed to open"; local $/ = undef; $xml_string = <FOO>; close(FOO); my $parser = new XML::Parser::Expat; my $first; $parser->setHandlers(CdataStart => \&start, CdataEnd => \&end ); $parser->parse($xml_string); sub start { $first = $_[0]->current_byte; } sub end { print substr($xml_string, $first, $_[0]->current_byte - $first + 1 +); }