XML in Perl effektiv parsen?

Begonnen von Tobias, 24 Juni 2014, 20:11:33

Vorheriges Thema - Nächstes Thema

Tobias

Hi,
bei uns wird der Abfallkalender mit einer Webanwendung zur Verfügung gestellt :)
Ich habe das schon so reduziert, das ich mit einem HTML-Aufruf die Daten des gesamten Jahres bekomme (ein Beispiel aus meiner Stadt):
http://sab.metageneric.de/app/sab_i_tp/index.php?r=getHausnummerInfo&strasse=Torplatz&hausnummer=1

Die Frage, wie kann ich mit wenig code das XML parsen? Gibt es da fertige libraries?
Ich würde mir ggf ein kleines privates Modul bauen was diese Daten extrahiert um Sie dann an den entsprechenden Tagen per TTS vorlesen bzw draus hinweisen zu können.
Schon Klar das das Modul nur für Magdeburg funktioniert ;)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dietmar63

#1
such mal nach XML::Simple - search.cpan.org
http://search.cpan.org/~grantm/XML-Simple-2.20/lib/XML/Simple.pm

Ich meine, dass nach dem Parsen fertige hash-Strukturen in Perl vorliegen, die man mit $hash{...}{...}  absuchen kann - sehr komfortabel!!!
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

Die folgenden Module nutzen XML::Simple

34_SWAP.pm
55_GDS.pm
70_ENIGMA2.pm
88_ALL4000T.pm
88_WEBCOUNT.pm
98_openweathermap.pm

Da sollte etwas dabei sein.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Tobias

Danke, ich schau es mir mal an. Da findet sich bestimmt Beispielcode.
Meine bisherigen Überlegungen gingen in richtung xsltproc und einem xslt-StyleSheet-Template
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dietmar63

Davon verstehe ich nichts.
xml::simple habe  ich mal genutzt um auf Amazon Produktinformaltion zuzugreifen - war letztendlich ganz einfach.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

da braucht man kein xslt für  :P

Aber das, was ich bei Deinem angegebenen Link bekomme, ist kein XML, sondern reines HTML.
Aber auch zum Parsen von HTML gibt es fertige perl-Module.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tobias

Zitat von: betateilchen am 25 Juni 2014, 15:30:33
Aber auch zum Parsen von HTML gibt es fertige perl-Module.
Und was kannst du dazu empfehlen? HTML::Parser?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

betateilchen

ja, das ist das Standard-Tool.

Eine recht übersichtliche Anleitung gibt es beispielsweise hier: http://htmlparsing.com/perl.html
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!