#!/perl -w
# NAME: xmlfix02.pl
# AIM: exploring add keyattr => [key, tag] to new
# BUT AS FAR AS I CAN TELL THEY ARE EXACTLY THE SAME!!!
# can not use 'strict' with [key, tag] ...
# 25/08/2007 geoff cmalne - geoffair.net/mperl/
#use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
require 'logfile.pl' or die "Unable to load logfile.pl ...\n";
# log file stuff
my ($LF);
my $pgmname = $0;
if ($pgmname =~ /\w{1}:\\.*/) {
	my @tmpsp = split(/\\/,$pgmname);
	$pgmname = $tmpsp[-1];
}
my $outfile = "temp.$pgmname.txt";
open_log($outfile);
prt( "$0 ... Hello, World ...\n" );
my ($xs1, $ref1, $xml1, $dx1, $cnt1);
my ($xs2, $ref2, $xml2, $dx2, $cnt2);
my @lines1 = ();
my @lines2 = ();
my $in_file = 'Banan.xml';

#- XmlSimpleKey.pl
$xs1 = new XML::Simple(keeproot => 1,searchpath => ".",
  forcearray => 1); # default is: keyattr => [name, key, id])
$ref1 = $xs1->XMLin($in_file);
$xml1 = $xs1->XMLout($ref1);
prt( "\nHash dump with 'keyattr => [name, key, id]':\n" );
$dx1 = Dumper($ref1);
prt( $dx1 );
prt( "\nXML output with 'keyattr => [name, key, id]':\n" );
prt( $xml1 );
prt( "\n" );
$xs2 = new XML::Simple(keeproot => 1,searchpath => ".",
  forcearray => 1, keyattr => [key, tag]);
$ref2 = $xs2->XMLin($in_file);
$xml2 = $xs2->XMLout($ref2);
prt( "\nHash dump with 'keyattr => [key, tag]':\n" );
$dx2 = Dumper($ref2); 
prt( $dx2 );
prt( "\nXML output with 'keyattr => [key, tag]':\n" );
prt( $xml2 );

@lines1 = split("\n",$dx1);
@lines2 = split("\n",$dx2);
$cnt1 = scalar @lines1;
$cnt2 = scalar @lines2;
prt( "1 $cnt1 lines, 2 $cnt2 lines\n" );
write2file($dx1, "temp1.txt");
write2file($dx2, "temp2.txt");
write2file($xml1, "temp11.txt");
write2file($xml2, "temp22.txt");
close_log($outfile,1);
exit(0);

# eof
