mit shellskript XML parsen?

Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

mit shellskript XML parsen?

Beitrag von Tommy »

Hi Dev's

besteht die Möglichkeit mit dbox Bordmitteln per skript die XML Datei welche bei TS Aufnahme erstellt wird zu parsen. Sprich aufzulösen in Variablen $Sender, $info1, $info2.....

Danke für jeden Tipp
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Nein. Es gibt keine saubere Möglichkeit. Unsaubere grep-Übungen sind ja natürlich möglich.

Eine Möglichkeit wäre ein C Programmchen zu schreiben, was sich auf libxml basiert (http://xmlsoft.org). libxml-Programmierung hat aber eine etwas steife Lernkurve. :cry:
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

Nein. Es gibt keine saubere Möglichkeit. Unsaubere grep-Übungen sind ja natürlich möglich.
...Auf dem Bleistift kaue ich ja schon :cry:

Kann man XML_grep irgendwie einbauen?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Beitrag von Barf »

Hmm, XML_grep ist laut Google ein Perl-Modul. Mann braucht dann erstmals Perl für Tuxbox. Es ist mir tatsächlich gelungen Perl auf dem dbox zu kompilieren, aber sicherlich wurde es nicht in einem Image passen.
animal
Interessierter
Interessierter
Beiträge: 45
Registriert: Freitag 18. Oktober 2002, 20:56

Beitrag von animal »

hallo

Code: Alles auswählen

datei='xyz.xml'

sender=`grep 'channelname' $datei | sed "s/<[^<>]*>//g"`
echo $sender
.....
.....
so gehts nur wenn jeder tag in eine eigene zeile geschrieben wurde.

animal
MarcM
Foren-Moderator
Beiträge: 1119
Registriert: Sonntag 9. Juni 2002, 13:28

Beitrag von MarcM »

guckt euch mal perlcc an....der kompiliert perl-Files in ausführbaren Code ("a")

Also er macht wohl perl nach c und dann normal kompilieren mit cc. Ich habs aber noch nicht geschafft ihm statt cc den cdk-ppc-gcc Compiler zu geben

ein export CC=cdk-ppc.... brachte irgendwie nix....

aber vielleicht kommt ihr da weiter....

Ich suche auch nach ner Möglichkeit ne XML zu parsen, siehe auch hier. Aber da isses warscheinlich einfacher die Devs bauens mit in den Movieplayer ein...

Greetz
Marc
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

@animal:
des teste ich heute abend mal. Ich brauche eh nur sender+ info1+ info2. Im Prinzip will ich mir nur einen Workaround schaffen um die Dateinamen bei TS aufnahme zu ändern. Im Dateibrowser ist es echt ein Graus mit den langen Dateinamen. Leider werden die Augen im Alter nicht besser für kleinstmögliche Fonts.
Ich hatte es schon mehrmals nachgefragt:
Optionale Dateinamenvergabe Im Menü "Einstellungen für Direktaufnahme":

Code: Alles auswählen

Reihenfolge                                     423
1 Sender                                        nein
2 Info1                                         ja
3 Info2                                         ja
4 Datum                                         ja
5 Uhrzeit                                       nein
Unterordner für Sender anlegen                  ja
XML Datei speichern                             nein
Für einen Profi sind das denk ich mal keine 10 Minuten Arbeit und der WAF würde mindestens 50% steigen :lol:
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

wieso?

"sed" sollte gehen und man koennte auch "awk"/"nawk" auf die Box hauen.

man muesste bei den Regexpr nur die multiline-Option angeben - das muesste eigentlich funktionieren (habs aber nicht getestet).
Lior
Interessierter
Interessierter
Beiträge: 69
Registriert: Donnerstag 17. Oktober 2002, 13:42

Beitrag von Lior »

nimm expat.

/nachtrag:

oh sorry, du sollst noch ein interface zu expad finden und dann ist es dasselbe. :oops:
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

animal hat geschrieben:hallo

Code: Alles auswählen

datei='xyz.xml'

sender=`grep 'channelname' $datei | sed "s/<[^<>]*>//g"`
echo $sender
.....
.....
so gehts nur wenn jeder tag in eine eigene zeile geschrieben wurde.

animal
Supi - habs gestern mal kurz getestet - funktioniert

Jetzt muß ich nur noch der Leerzeichen und Umlaute Herr werden - das muß ja mit sed auch funzen.

Warum werden in Neutrino eigentlich alle Umlaute mit _ dargestellt und nicht mit ae oe ue ersetzt?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

kann das so funzen? Soll Leerzeichen TAB's entfernen und Umlaute ersetzen. Gespeichert als modify.sed und ausgeführt mit

Code: Alles auswählen

 modify.sed $xmlfile > tempfile

Code: Alles auswählen

#!/bin/sed -f

's/^[ ^I]*//'
's/[ ^I]*$//'
'/^$/d'
's/ä/ae/g'
's/Ä\([A-ZÄÖÜ]\)/AE\1/g'
's/\([A-ZÄÖÜ]\)Ä/\1AE/g'
's/Ä/Ae/g'
's/ö/oe/g'
's/Ö\([A-ZÄÖÜ]\)/OE\1/g'
's/\([A-ZÄÖÜ]\)Ö/\1OE/g'
's/Ö/Oe/g'
's/ü/ue/g'
's/Ü\([A-ZÄÖÜ]\)/UE\1/g'
's/\([A-ZÄÖÜ]\)Ü/\1UE/g'
's/Ü/Ue/g'
's/ß\([A-ZÄÖÜ]\)/SS\1/g'
's/\([A-ZÄÖÜ]\)ß/\1SS/g'
's/ß/ss/g'
Bzw. gehts auch einfacher?
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

ok das oben funktioniert nicht - scheinbar ein UTF-8 problem. Hat jemand einen tipp wie ich mit sed die umlaute aus der XML rauskriege?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?