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

Daten aus XML auslesen: Daten aus XML extrahieren



<< >> 8 Einträge, 1 Seite
Rafael
 2006-11-06 18:04
#71504 #71504
User since
2006-07-26
22 Artikel
BenutzerIn
[default_avatar]
XML-File
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
26
27
28
29
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <swisswebcams>
<lastupdate>1162510380</lastupdate>
<base>[URL=http://www.swisswebcams.ch/</base>;]http://www.swisswebcams.ch/</base>;[/URL]
- <webcam>
<id>1074941913</id>
<titel>Aarau, Pilatus, Titlis</titel>
<thumbnail>thumbnails/bigger/1074941913.jpg</thumbnail>
<link>deutsch/webcam_aarau,_pilatus,_titlis_(5000_aarau)_1074941913.html</link>
<beschreibung>Sendemast Wasserfluh, 900 m.ü.M., 5km NW von Aarau, Koordinate 643.875/253.515</beschreibung>
<ort>Aarau</ort>
<plz>5000</plz>
<latitude>47.4320355847397</latitude>
<longitude>8.02482604980469</longitude>
<lastmodified>1074941913</lastmodified>
</webcam>
- <webcam>
<id>1116849865</id>
<titel>Aegeriwetter</titel>
<thumbnail>thumbnails/bigger/1116849865.jpg</thumbnail>
<link>deutsch/webcam_aegeriwetter_(6314_unterägeri)_1116849865.html</link>
<beschreibung>Sicht von der Ennermatt Richtung Osten auf den Ägerisee ...</beschreibung>
<ort>Unterägeri</ort>
<plz>6314</plz>
<latitude>47.1315419657031</latitude>
<longitude>8.58423829078674</longitude>
<lastmodified>1116849865</lastmodified>
</webcam>
...


Nun will ich den Titel, den Link, den Ort, die PLZ und die Beschreibung in variablen speichern.
Wie kann man das machen???

edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1163156153-->
pq
 2006-11-06 18:11
#71505 #71505
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
CPAN:XML::LibXML oder hier vermutlich ausreichend: CPAN:XML::Simple
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2006-11-06 21:35
#71506 #71506
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Bei der Arbeit mit XML::LibXML würde ich auf jeden Fall XPath verwenden. Das macht die Arbeit mit XML erträglich. Zum Erzeugen eines XPaths kann man tkxmlview aus CPAN:Tk::XMLViewer verwenden.
(Kontextmenü über Tag > XML > XPath to Selection)
Duff
 2006-11-09 20:05
#71507 #71507
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Quote
Nun will ich den Titel, den Link, den Ort, die PLZ und die Beschreibung in variablen speichern.
Wie kann man das machen???


Es würde doch auch funktionieren, wenn man die einzelnen Tags, die ja sowieso immer gleich oder ähnlich heißen und aufgebaut sind, einfach über reguläre Ausdrücke mittels match z.B. ermittelt und diese dann in Variablen, Arrays oder wie auch immer speichert.\n\n

<!--EDIT|Duff|1163144872-->
D'OH
Daniel
renee
 2006-11-09 23:05
#71508 #71508
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Sobald sich nur eine Kleinigkeit (z.B. Reihenfolge von Attributen) ändert, haut es Dir alles um die Ohren. Deswegen sollte man solche Parser-Module verwenden.
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/
Duff
 2006-11-10 09:49
#71509 #71509
User since
2006-10-06
283 Artikel
BenutzerIn

user image
Ok, da hast du natürlich auch wieder Recht, renee.
Aber das Verwenden der Parser-Module ist meiner Meinung nach aber wieder ein wenig komplizierter.
D'OH
Daniel
pq
 2006-11-10 12:42
#71510 #71510
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Duff,10.11.2006, 08:49]Aber das Verwenden der Parser-Module ist meiner Meinung nach aber wieder ein wenig komplizierter.[/quote]
nein, es ist einfacher.

Code: (dl )
1
2
3
4
5
6
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc    = $parser->parse_string($string);
my $root   = $doc->documentElement;
# einzelne elemente holen
my $titel = ($root->findnodes('titel'))[0]->textContent:
\n\n

<!--EDIT|pq|1163156335-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
nepos
 2006-11-10 14:57
#71511 #71511
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Vorallem ist es zuverlaessiger und weniger fehleranfaellig.
<< >> 8 Einträge, 1 Seite



View all threads created 2006-11-06 18:04.