[quote=ptk,11.03.2005, 18:45]Ich glaube, ich werde mit XML::LibXML gluecklich werden.[/quote]
soweit so gut;
folgendes passiert
ausgehend von dem xml von oben, hab ich folgeneds
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
my $iter = XML::LibXML::Iterator->new($root);
while($iter->next) {
my $buttonref = undef;
my $node = $iter->current;
my $name = lc($node->getName);
if($name eq 'button') {
$buttonref = {};
$buttonref->{BUTTON_ID} = $node->getAttribute('id');
$buttonref->{BUTTON_TITLE} = $node->getAttribute('title');
$buttonref->{BUTTON_TEXT} = $node->getAttribute('text');
$buttonref->{BUTTON_ALIGN} = $node->getAttribute('align');
$buttonref->{BUTTON_ISDROPDOWN} = $node->getAttribute('dropdown');
my $iter = XML::LibXML::Iterator->new($node);
while($iter->next) {
my $node = $iter->current;
my $name = lc($node->getName);
if($name eq 'image') {
$buttonref->{BUTTON_IMAGE_SRC} = $node->getAttribute('src');
$buttonref->{BUTTON_IMAGE_WIDTH} = $node->getAttribute('width');
$buttonref->{BUTTON_IMAGE_HEIGHT} = $node->getAttribute('height');
$buttonref->{BUTTON_IMAGE_ALT} = $node->getAttribute('alt');
} elsif($name eq 'action') {
my $type = $node->getAttribute('type');
my $prefix = 'BUTTON_ACTION_'.uc($type);
$buttonref->{$prefix} = 1;
$buttonref->{$prefix.'_EVENT'} = $node->getAttribute('event');
$buttonref->{$prefix.'_ACTION'} = $node->getAttribute('action');
}
}
} elsif($name eq 'seperator') {
$buttonref = {};
$buttonref->{BUTTON_ISSEPERATOR} = 1;
}
if(defined $buttonref) {
if(lc($buttonref->{BUTTON_ALIGN}) eq 'right') {
push @buttonsright, $buttonref;
} else {
push @buttonsleft, $buttonref;
}
}
}
leider ist jetzt bei allen "button" das "image" immer "print"!
Warum?