2013-07-11 76 views
0

好日子的人,Linux的XML編輯從命令行/ Shell腳本

我有這樣的XML:

<application> 
     <NVPairs name="Variables"> 
     <NameValuePair> 
      <name>Parameter/1</name> 
      <value>MyOtherValue</value> 
      </NameValuePair> 
      <NameValuePair> 
       <name>Parameter/2</name> 
       <value>MyValue</value> 
      </NameValuePair> 

     </NVPairs> 
    </application> 

對此我試圖用SED進行編輯。 NVPAIRS和NameValue似乎讓我感到困惑了一下。我可以要求建議如何處理NameValuePair?我也嘗試過XMLStarlet,但同樣的問題。似乎無法處理NameValuePairs。 SED是我的首選。試着製作一個改變幾個值然後部署的腳本。

+0

我的水晶球今晚不工作。你想做什麼,爲什麼它不工作? – John3136

+0

大聲抱歉我想編輯參數/ 2(這不是一個常數)和Myvalue(它也不是一個常量)。 – Riaan

+1

它是XML。使用一些在XML中處理的東西,而不是模式匹配。我可能會使用帶有XML :: LibXML的Perl單線程值 – Quentin

回答

0

我不會嘗試使用sed編輯XML。除非有一些常數可以匹配(這可以讓你決定你是在1/1還是2/1),這很難(我會說不可能,但是一些sed大師會提示並證明我錯了......)

如果你不能安裝東西,像awk或perl腳本,可以讓你保持最低限度的狀態,你的工作比sed好。

+0

我嘗試使用我在這裏找到的信息awk:http://stackoverflow.com/questions/8514985/how-to-change-specific-value-of-xml-attribute-using-scripting-on-mac但如我所說信息並不總是一樣的。我嘗試了一種XPATH方法,但這是奇怪的XML(名字對),第一次嘗試使用腳本進行編輯 – Riaan

+0

awk可以更像腳本語言(變量等)使用,因此您可以保持狀態和處理不同的行取決於狀態。您真的需要提供您期望處理的值類型的示例 - 在此之前,我們都只是猜測! – John3136

+0

我提供的示例XML是我必須處理的有點值。沒有不變。所以SED/AWK可能無法工作。 XML是JAVA EAR文件的「配置」文件。 – Riaan