Schrift
[thread]167[/thread]

XML mit Perl auslesen: Kann Perl xml Dokumente auslesen und ... (Seite 2)

Leser: 3


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
Heromaster
 2004-02-24 11:34
#1198 #1198
User since
2003-08-05
220 Artikel
BenutzerIn
[default_avatar]
Wenn Du vor hast, nur bestimmte XML-Knoten (und evtl. unter verschiedenen Bedingungen) herausfiltern willst, schau Dir mal das Modul XML::XPath an.
Derjenige, der zwei Hasen jagt, lässt einen zurück und verliert den anderen.
janek
 2004-03-01 16:06
#1199 #1199
User since
2004-02-02
17 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,
mit XML::Simple hat das alles ganz wunderbar geklappt. Ich habe jedoch noch drei kleine fragen an euch.
Frage Nummer 1:

Meine xml's haben ungefähr folgende struktur.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
     'mainframe'        => {
         'server'        => {
             'osversion'     => '2.6',
             'osname'        => 'solaris',
             'address'       => [ '10.0.0.101', '10.0.1.101' ]
         },
         'server'          => {
             'osversion'     => '6.5',
             'osname'        => 'irix',
             'address'       => '10.0.0.102'
         },
         'server'      => {
             'osversion'     => '2.0.34',
             'osname'        => 'linux',
             'address'       => [ '10.0.0.103', '10.0.1.103' ]
         }
     }
 }

jetzt ist unter 'mainframe' drei mal 'server' eingetragen. wie kann ich jetzt gezielt auf einen der einträge zugreifen.
Zur zeit lese ich folgendermassen die werte aus.
Code: (dl )
1
2
  
print $config->{mainframe}->{server}->{address}->[1];

was wenn ich den zweiten server eintrag auslesen will?

Ich hoffe ihr könnt mir folgen.

Zweite Frage:

Einige werte aus der xml sind strings mit umlauten. wenn ich diese auslese und sie per print ausgebe, sind an stelle der umlaute jetzt ascii-codes. wie bekomme ich wieder umlaute?

Frage drei:

meine programm dient sozusagen als template. jetzt kann es passieren, das das template daten aus der xml lesen will, wo jedoch keine eingetragen sind. dann liefert mir der string folgenden wert zurück : "(HASHx......)" Das ist wohl die Adresse des werts aus dem hash. doch was soll ich damit? warum zeigt er sie mir, anstatt das feld einfach leer zu lassen.

vielen dank euch allen.
esskar
 2004-03-01 16:26
#1200 #1200
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=janek,01.03.2004, 15:06]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
     'mainframe'        => {
         'server'        => {
             'osversion'     => '2.6',
             'osname'        => 'solaris',
             'address'       => [ '10.0.0.101', '10.0.1.101' ]
         },
         'server'          => {
             'osversion'     => '6.5',
             'osname'        => 'irix',
             'address'       => '10.0.0.102'
         },
         'server'      => {
             'osversion'     => '2.0.34',
             'osname'        => 'linux',
             'address'       => [ '10.0.0.103', '10.0.1.103' ]
         }
     }
 }
[/quote]
geht das überhaupt?
die daten hinter mainframe sind doch in einem hash gespeichert, aber die schlüssel in einem hash sind immer unique...
wie erstellst du dieses struktur? Mit Data::Dumper?
janek
 2004-03-01 18:20
#1201 #1201
User since
2004-02-02
17 Artikel
BenutzerIn
[default_avatar]
@esskar

also das soll lediglich die struktur der xml datei darstellen. ich habe das schaubild aus der perldoc.
esskar
 2004-03-01 18:30
#1202 #1202
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
dann benutz doch bitte mal dump aus use Data::Dump qw/dump/ damit ich sehe, wie dein xml-object wirklich aufgebaut ist!
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-02-12 20:14.