Thread Verständnis-Problem XML-Twig (5 answers)
Opened by nyjo at 2008-02-20 08:55

nyjo
 2008-02-20 10:50
#106134 #106134
User since
2005-01-11
17 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Handler für das schließende "Bescheinigung"-Tag schreiben
Wie definiere ich so einen Handler :-/

Hier der Source-Ausschnitt!

Propertie-Datei:
Code: (dl )
1
2
3
BAUMSTRUCT_1 = /Batch/Bescheinigung/Empfaenger
BAUMSTRUCT_2 = /Batch/Bescheinigung/Empfaenger/Adresse
.


Source:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
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
Code: (dl )
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

View full thread Verständnis-Problem XML-Twig