Hallo,
Handler für das schließende "Bescheinigung"-Tag schreiben
Wie definiere ich so einen Handler :-/
Hier der Source-Ausschnitt!
Propertie-Datei:
BAUMSTRUCT_1 = /Batch/Bescheinigung/Empfaenger
BAUMSTRUCT_2 = /Batch/Bescheinigung/Empfaenger/Adresse
.
Source:
my $baum1 = $props->getProperty("BAUMSTRUCT_1");
my $baum2 = $props->getProperty("BAUMSTRUCT_2");
my $baum3 = $props->getProperty("BAUMSTRUCT_3");
my $baum4 = $props->getProperty("BAUMSTRUCT_4");
my $twig = new XML::Twig( twig_handlers => { $baum1 => \&getBaum1,
$baum2 => \&getBaum2,
$baum3 => \&getBaum3,
$baum4 => \&getBaum4
} );
$twig->parsefile( $opt_datei );
$twig->purge;
Funktion:
Sind alle identisch! außer getTreeField
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
sub getBaum1{
my( $twig, $tree)= @_;
my %hashTree = getTreeField(1);
my $sDummy = "";
$anzCol = 1;
$log->print( Dumper(\%hashTree)."\n" ) if $opt_debug;
foreach my $item ( sort keys %hashTree ){
if( defined($tree->first_child( $hashTree{$item} ))){
my $treeChild = $tree->first_child( $hashTree{$item} );
my $treetext = join '', map { $_->text if( $_->is_text || (exists $_->{'ent'})) } $treeChild->children;
$log->print($item.": ".$treetext."\n" ) if $opt_debug;
$sDummy = encode('iso-8859-1', $treetext );
my @keys = split('_', $item );
$fields{$keys[1]} = $sDummy;
}
$anzCol++;
}
if( $anzCol >= $anzSpalten ){
$log->print( "\n".Dumper(\%fields)."\n" );
&writeFile();
%fields = ();
}
}
alles wird gut
---
mfg
Joachim Nyenhuis