3 回答

TA貢獻1848條經驗 獲得超10個贊
您可以嘗試xmllint
xmllint程序解析一個或多個XML文件,這些文件在命令行上指定為xmlfile。根據選擇的選項,它會打印各種類型的輸出。這對于檢測XML代碼和XML解析器中的錯誤很有用
它允許您使用--pattern選項通過xpath選擇XML文檔中的元素。
在Mac OS X(Yosemite)上,默認情況下已安裝它。
在Ubuntu上,如果尚未安裝,則可以運行apt-get install libxml2-utils

TA貢獻1805條經驗 獲得超9個贊
這是一個完整的工作示例。
如果僅提取電子郵件地址,則可以執行以下操作:
1)假設XML文件spam.xml類似于
<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)您可以使用以下簡短的bash代碼獲取電子郵件并進行處理:
#!/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
該示例的結果是:
重要說明:
請勿將其用于嚴重問題??梢酝嫠#@得快速結果,學習grep等,這是可以的,但是您絕對應該尋找,學習和使用XML解析器進行生產(請參見下面的Micha評論)。
- 3 回答
- 0 關注
- 584 瀏覽
添加回答
舉報