1 #############################################################################
3 # Apache::Session::Serialize::SimpleXML
4 # Serializes session objects using Storable and pack
6 ############################################################################
8 package Apache::Session::Serialize::SimpleXMLISO;
10 use vars qw($VERSION);
16 #################################################
17 # Parsea un archivo XML con la limitacion de #
18 # que debe tener un tag por linea. #
19 #################################################
21 my @xml = split( "\n", shift );
26 foreach my $line ( @xml ) {
27 $line =~ s/\s*(<.*>)\s*/$1/msg;
28 if ( lc( $line ) eq "<hash>" ) {
30 $isarray[++$nivel] = 0;
32 if ( lc( $line ) eq "<array>" ) {
34 $isarray[++$nivel] = 1;
36 if ( lc( $line ) eq "</hash>" ) {
40 if ( lc( $line ) eq "</array>" ) {
44 if ( $line =~ /<item key="(.*)">([^<>]*)(<\/item>)?/i ) {
45 $eval .= "'" . UnQuoteXMLChars( $1 ) . "'=>"
46 if ( not $isarray[$nivel] );
47 $eval .= "'" . UnQuoteXMLChars( $2 ) . "',"
57 ######################################################################
63 $str =~ s/'/\\'/g;
71 my $dump = new XML::DumperISO;
72 $session->{'serialized'} = $dump->pl2xml( $session->{'data'} );
77 $session->{'data'} = semiXMLParse( $session->{'serialized'} );