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

XML::Simple

Leser: 2


<< >> 3 Einträge, 1 Seite
Andreas
 2008-10-29 15:57
#115821 #115821
User since
2003-09-24
111 Artikel
BenutzerIn
[default_avatar]
Hallo an alle,
ich habe folgendes XML File:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<HISTORY BAUFORM="TEST" URSPRUNG="....." ART="OPTISCH" ERSTELLER="user1" ERSTELL_DATUM="12.03.2008">
<VERSION STAND="1.00" USER="user2" DATUM="2006-01-02">
<BESCHREIBUNG>
Header in cle File eingespielt
</BESCHREIBUNG>
</VERSION>
<VERSION STAND="1.01" USER="user2" DATUM="2007-04-25">
<BESCHREIBUNG>
Zweite Version, irgendwas wurde geändert....
</BESCHREIBUNG>
</VERSION>
<VERSION STAND="1.03" USER="user3" DATUM="2008-03-02">
<BESCHREIBUNG>
Dritte Version....
</BESCHREIBUNG>
</VERSION>
</HISTORY>



Diesen möchte ich konfortabel mit XML::Simple auslesen und weiter verarbeiten.
nun sind in diesem XML File 3 verschiedenene Versionen.
ich mcöhte jetzt in einem Array die drei verschiedenen Versionen haben und sie dann zum Beuispiel ausgeben:

Version: 1.00 User: user2 Datum: 2006-01-02
Version: 1.01 User: user2 Datum: 2007-04-25
Version: 1.02 User: user3 Datum: 2008-03-02

kennt sich jemand mit dem Modul aus? Wie kann ich das in der Art machen`?

Danke schon mal

Gruß
Andreas
format_c
 2008-10-29 17:13
#115824 #115824
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Lies dien Dateiinhalt einfach mit XMLin() ein dann hast du die komplette Datei in der Variable als Hashreferenz.
Sprich:
Code (perl): (dl )
1
2
3
4
5
6
my $xml = XML::Simple::XMLin("test.xml") or die $!;
for my $ver (@{$xml->{VERSION}}) {
        print $ver->{STAND},"\n";
        print $ver->{BESCHREIBUNG},"\n";

}


Gruß Alex
GwenDragon
 2008-10-29 17:42
#115825 #115825
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Schau dir mal diese Ausgabe an, dann weißt du wie die Datenstruktur ausseiht, die XML-Simple erzeugt:
Code (perl): (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
26
use strict;
use warnings;
use XML::Simple;
use Data::Dumper;
my $data = <<'XML';
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<HISTORY BAUFORM="TEST" URSPRUNG="....." ART="OPTISCH" ERSTELLER="user1" ERSTELL_DATUM="12.03.2008">
    <VERSION STAND="1.00" USER="user2" DATUM="2006-01-02">
       <BESCHREIBUNG>
         Header in cle File eingespielt
       </BESCHREIBUNG>
    </VERSION>
    <VERSION STAND="1.01" USER="user2" DATUM="2007-04-25">
       <BESCHREIBUNG>
         Zweite Version, irgendwas wurde geändert....
       </BESCHREIBUNG>
    </VERSION>
    <VERSION STAND="1.03" USER="user3" DATUM="2008-03-02">
       <BESCHREIBUNG>
          Dritte Version....
       </BESCHREIBUNG>
    </VERSION>
</HISTORY>
XML
my $parsed = XMLin($data);
print Dumper($parsed);
<< >> 3 Einträge, 1 Seite



View all threads created 2008-10-29 15:57.