Saya tidak begitu akrab dengan regex, sed, dll. dan agak malas untuk mengetahuinya saat ini, jadi bagaimana cara mengekstrak baris ini:
<yweather:astronomy sunrise="6:50 am" sunset="7:06 pm"/>
Beri tahu saya jika diperlukan lebih banyak struktur xml.
Jawaban yang Diterima:
Karena data input (file XML Anda) terstruktur, lebih baik Anda menggunakan kueri pada data terstruktur tersebut, daripada memperlakukannya sebagai teks biasa dan mengacaukan ekspresi reguler.
Kita dapat menggunakan xmllint --xpath
untuk mengevaluasi ekspresi XPath pada input xml Anda:
$ xmllint --xpath 'string(rss/channel/*[local-name()="astronomy"]/@sunrise)' weather.xml
6:48 am
– ini sedikit berbelit-belit, karena kita harus berurusan dengan ruang nama yang berbeda dalam file itu, tetapi tetap berfungsi.
Untuk informasi lebih lanjut tentang XPath, spesifikasinya ada di http://www.w3.org/TR/xpath/