Inilah contoh kerja lengkap.
Jika hanya mengekstrak alamat email, Anda dapat melakukan sesuatu seperti:
1) Misalkan file XML spam.xml seperti
<spam>
<victims>
<victim>
<name>The Pope</name>
<email>[email protected]</email>
<is_satan>0</is_satan>
</victim>
<victim>
<name>George Bush</name>
<email>[email protected]</email>
<is_satan>1</is_satan>
</victim>
<victim>
<name>George Bush Jr</name>
<email>[email protected]</email>
<is_satan>0</is_satan>
</victim>
</victims>
</spam>
2) Anda bisa mendapatkan email dan memprosesnya dengan kode bash singkat ini:
#!/bin/bash
emails=($(grep -oP '(?<=email>)[^<]+' "/my_path/spam.xml"))
for i in ${!emails[*]}
do
echo "$i" "${emails[$i]}"
# instead of echo use the values to send emails, etc
done
Hasil dari contoh ini adalah:
0 [email protected]
1 [email protected]
2 [email protected]
Catatan penting:
Jangan gunakan ini untuk masalah serius. Tidak apa-apa untuk bermain-main, mendapatkan hasil cepat, mempelajari grep, dll. tetapi Anda harus pasti cari, pelajari, dan gunakan parser XML untuk produksi (lihat komentar Micha di bawah).
Anda dapat mencoba xmllint
Program xmllint mem-parsing satu atau lebih file XML, ditentukan pada baris perintah sebagai file xml. Ini mencetak berbagai jenis keluaran, tergantung pada opsi yang dipilih. Berguna untuk mendeteksi kesalahan baik dalam kode XML maupun dalam parser XML-nya
Ini memungkinkan Anda memilih elemen dalam dokumen XML dengan xpath, menggunakan opsi --pattern.
Di Mac OS X (Yosemite), ini diinstal secara default.
Di Ubuntu, jika belum diinstal, Anda dapat menjalankan apt-get install libxml2-utils
Saya terkejut tidak ada yang menyebutkan xmlsh. Pernyataan misi :
Shell baris perintah untuk XML Berdasarkan filosofi dan desain Unix Shells
xmlsh menyediakan lingkungan skrip yang familiar, tetapi secara khusus disesuaikan untuk proses skrip xml.
Daftar perintah seperti shell disediakan di sini.
Saya menggunakan xed
banyak perintah yang setara dengan sed
untuk XML, dan mengizinkan XPath
berdasarkan pencarian dan penggantian.
Ada juga xmlstarlet (yang juga tersedia untuk Windows).
http://xmlstar.sourceforge.net/doc/xmlstarlet.txt