Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11490[/thread]

XML::Simple

Leser: 3


<< >> 5 Einträge, 1 Seite
Andreas
 2008-03-19 15:22
#107247 #107247
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
Hallo an alle,
seit gestern spiele ich mit dem XLM::Simple rum und stoße grade auf ein problem, das aber eher mit Perl direkt zu tnu hat.
folgende XML Datei lese ich ein:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<HISTORY BAUFORM="C1206" URSPRUNG="DATABASE_WAVE" ART="OPTISCH" ERSTELLER="Andreas Daschner" ERSTELL_DATUM="12.03.2008">
<VERSION STAND="1.00_P5" USER="legdaa0" DATUM="2006-01-02">
<BESCHREIBUNG>
Header in cle File eingespielt

</BESCHREIBUNG>
</VERSION>
<VERSION STAND="1.01_P5" USER="legdaa0" DATUM="2006-01-02">
<BESCHREIBUNG>
Erstversion aus Library

</BESCHREIBUNG>
</VERSION>
</HISTORY>


Hier gibt es zwei Versionen die durch den XML Parser in einen Hash geschrieben werden.
Ich muss nun auf die aktuellste version , sprich das letzte Element im Array, zugreifen und mache das folgender masen:

Code (perl): (dl )
$cle_version_in=$cle_xml_data->{VERSION}->[$#{$cle_xml_data->{VERSION}}]->{STAND};


beinhaltet die XML Datei nun aber nur eine Version bekomme ich hier Probleme, da mir dann (logischerweise) folgende Fehlermeldung ausgegeben wird:

"not an Array Element at...."

Jetzt weiss ich nicht so recht wie ich das lösen soll.
Hat jemand von euch eine Ahnung?

Danke schon mal
renee
 2008-03-19 15:28
#107250 #107250
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl

use strict;
use warnings;
use XML::Simple;
use Data::Dumper;

my $in = XMLin( 'beispiel.xml', ForceArray => 1 );

print Dumper $in->{VERSION}->[-1]->{STAND};


Edit: ForceArray => 1 hinzugefügt für den Fall, dass nur 1 Version vorhanden ist...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Andreas
 2008-03-19 15:43
#107251 #107251
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
hi renee,
wie der mal danke für die superschnelle Antwort.
Bei mir kommt folgende Meldung:


Code: (dl )
Unrecognised option: ForceArray at K:\Programme\Perl\XML_TEST\XML_TEST.pl line 13


Hast du eine Ahnung warum?

Danke schon mal
Andreas
 2008-03-19 15:45
#107252 #107252
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
Andreas+2008-03-19 14:43:43--
hi renee,
wie der mal danke für die superschnelle Antwort.
Bei mir kommt folgende Meldung:


Code: (dl )
Unrecognised option: ForceArray at K:\Programme\Perl\XML_TEST\XML_TEST.pl line 13


Hast du eine Ahnung warum?

Danke schon mal



Sorry
hat sich erledigt, forcearray musste lediglich klein geschrieben werden.
renee
 2008-03-19 15:46
#107253 #107253
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Welche Version von XML::Simple hast Du denn? Hast Du meinen Code genommen? Wenn nein, wie sieht Dein Code aus?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 5 Einträge, 1 Seite



View all threads created 2008-03-19 15:22.