Non ho molta familiarità con regex, sed, ecc. e sono un po' pigro per capirlo in questo momento, quindi come estraggo questa riga:
<yweather:astronomy sunrise="6:50 am" sunset="7:06 pm"/>
Fammi sapere se è necessaria più struttura xml.
Risposta accettata:
Poiché i dati di input (il tuo file XML) sono strutturati, è meglio usare una query su quei dati strutturati, piuttosto che trattarli come testo normale e pasticciare con le espressioni regolari.
Possiamo usare xmllint --xpath
per valutare un'espressione XPath nell'input xml:
$ xmllint --xpath 'string(rss/channel/*[local-name()="astronomy"]/@sunrise)' weather.xml
6:48 am
– questo è un po' contorto, poiché dobbiamo occuparci dei diversi spazi dei nomi in quel file, ma funziona comunque.
Per ulteriori informazioni su XPath, le specifiche sono disponibili all'indirizzo http://www.w3.org/TR/xpath/