亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用shellscript解析XML

如何使用shellscript解析XML

翻閱古今 2019-10-29 10:24:44
我想知道使用shellscript解析XML文件的最佳方法是什么?應該一個人手工做嗎?第三層圖書館是否存在?如果您已經做到了,請告訴我您是如何做到的
查看完整描述

3 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您可以嘗試xmllint


xmllint程序解析一個或多個XML文件,這些文件在命令行上指定為xmlfile。根據選擇的選項,它會打印各種類型的輸出。這對于檢測XML代碼和XML解析器中的錯誤很有用


它允許您使用--pattern選項通過xpath選擇XML文檔中的元素。


在Mac OS X(Yosemite)上,默認情況下已安裝它。

在Ubuntu上,如果尚未安裝,則可以運行apt-get install libxml2-utils


查看完整回答
反對 回復 2019-10-29
?
Cats萌萌

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

該示例的結果是:


0 [email protected]

1 [email protected]

2 [email protected]

重要說明:

請勿將其用于嚴重問題??梢酝嫠#@得快速結果,學習grep等,這是可以的,但是您絕對應該尋找,學習和使用XML解析器進行生產(請參見下面的Micha評論)。


查看完整回答
反對 回復 2019-10-29
  • 3 回答
  • 0 關注
  • 584 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號