Sida 1 av 1

Extrahera text från xml label?

Postat: 04 apr 2012, 07:54
av webaake
Jag har en text i typ xml format;
<openbox_pipe_menu>
<separator label="Kalmar (2012-04-04)" />
<separator label="Aktuell prognos" /><item label="Väder: Klart" /><item label="Temperatur: -5 °C" /><item label="Luftfuktighet: 93 %" /><item label="Vind: N, 2 m/s" />
<separator label="Prognos: ons" /><item label="Väder: Mestadels soligt" /><item label="Lägsta temperatur: -2 °C" /><item label="Högsta temperatur: 8 °C" />
<separator label="Prognos: tors" /><item label="Väder: Klart" /><item label="Lägsta temperatur: -1 °C" /><item label="Högsta temperatur: 9 °C" />
<separator label="Prognos: fre" /><item label="Väder: Molnigt" /><item label="Lägsta temperatur: -2 °C" /><item label="Högsta temperatur: 10 °C" />
<separator label="Prognos: lör" /><item label="Väder: Risk för snö" /><item label="Lägsta temperatur: -2 °C" /><item label="Högsta temperatur: 5 °C" />
</openbox_pipe_menu>
Jag skulle vilja ha ut all text inom label=" ".
Jag har testat flera olika sed kommandon och även installerat xmlstarlet och testat, men inte lyckats.

Re: Extrahera text från xml label?

Postat: 04 apr 2012, 09:06
av mcNisse
använd xsltproc och skapa dig ett stylesheet. XSLT är det enklaste och mest rubusta för att hantere xml.

Har dock inte tid att hjälpa mer än så här, tyvär...

Re: Extrahera text från xml label?

Postat: 04 apr 2012, 10:03
av andol
Japp, XML ska parsas som XML. Visst kan man ibland få ut något användbart med hjälp utav ett reguljärt uttryck, men förr eller senare så råkar man ut för en ommöblerade radbrytningar eller så, och då går ens sed sönder.

För egen del skulle jag snegla mot lämpligt XML-bibliotek till PHP/Perl/Python/Ruby.

Re: Extrahera text från xml label?

Postat: 04 apr 2012, 10:32
av webaake
Ingen som testat xmlstarlet?

Skall kolla perl o. python verktyg, så får vi se.

Tack - Glad Påsk!

Re: Extrahera text från xml label?

Postat: 04 apr 2012, 18:03
av webaake
LÖST! Fast inte med xml parsing. Det ursprungliga probelmet var att jag inte kunde kalla på ett openbox kommando från en lxpanel launcher. Kommandot är Alt+F2 och kallar på ett väderscript (getweather.py, finns i många versioner) och som visar resultat i ett eget fönster baserat på xml koden ovan. Men det var lögn i h-vete att köra detta från en lxpanel launcher, fast det gick bra från lxpanels programmeny från en .desktop fil (?). Men jag ville ha en launcher, ju!

xdotool funkar fint från andra paneler som tint2 och fbpanel, men inte från lxpanel. Fast jag märkte att 'xdotool key super+ŕ' funkade fint direkt från en launcher så jag snickrade ihop detta;

Kod: Markera allt

#!/bin/bash
#Script for lxpanel which calls vader.py, which calls getweather.py
xdotool key super+r ;
xdotool sleep 0.1 ;
xdotool type python ;
xdotool key space ;
xdotool type /home/mrmedia/bin/vader.py ;
xdotool sleep 0.2 ;
xdotool key Return
exit 0
Så det blev alltså ett script, som kallar på ett annat script, som kallar på ytterligare ett annat script!

Men nu kan jag iallafall klicka på en sol direkt i lxpanel och få en prognos för mitt område i celsius och m/s! Dessutom har jag lärt mig xdotool!

Re: Extrahera text från xml label?

Postat: 29 jun 2012, 19:56
av Konservburk
webaake skrev:Ingen som testat xmlstarlet?
Jodå, det har jag gjort. Inte för att jag minns syntaxen så här på rak arm, mer än att den inte var helt självklar.

Re: Extrahera text från xml label?

Postat: 29 jun 2012, 23:46
av David Andersson
1) Vad händer om du ersätter allt detta

Kod: Markera allt

#!/bin/bash
#Script for lxpanel which calls vader.py, which calls getweather.py
xdotool key super+r ;
xdotool sleep 0.1 ;
xdotool type python ;
xdotool key space ;
xdotool type /home/mrmedia/bin/vader.py ;
xdotool sleep 0.2 ;
xdotool key Return
exit 0
med bara detta

Kod: Markera allt

#!/bin/bash
/home/mrmedia/bin/vader.py
eller om vader.py inte är exekverbar med bara detta

Kod: Markera allt

#!/bin/bash
python /home/mrmedia/bin/vader.py
2) Vi har inte sett din lösning för XML parsning. Vad innehåller vader.py resp getweather.py ? (Du behöver inte svara om det är hemligt eller ointressant.)

Re: Extrahera text från xml label?

Postat: 02 jul 2012, 12:46
av ycc
Ursäkta om jag är OT, jag kommer bara ihåg att simpleXML funkade bra i PHP. Fordrade PHP5 vill jag minnas.