2016-08-24 88 views
-1

XML節點我有一個像下面的示例XML文件,如何刪除使用SED或Unix shell腳本命令

<Students> 
    <student> 
     <name>john</name> 
     <id>123</id> 
    </student> 
    <student> 
     <name>mike</name> 
     <id>234</id> 
    </student> 
</Students> 

我想通過名稱來刪除一個特定學生的節點。例如,我想從xml文件中刪除學生約翰元素

<student> 
     <name>john</name> 
     <id>123</id> 
</student> 

。我如何在shell腳本或SED中實現這一點。

我正在尋找使用xmlstarlet的shell腳本命令。如何使用REGED將SED歸檔。

請指教。

+2

你試圖解決這個問題? – Inian

回答

1

您可以像下面一樣使用xmlstartlet;

xmlstarlet ed -d "/Students/student[name='john']" 11 

ed是編輯或更新XML。

-d是刪除參數。

"/Students/student[name='john']"是的xpath

實施例;

[email protected]:/tmp$ xmlstarlet ed -d "/Students/student[name='john']" 11 
<?xml version="1.0"?> 
<Students> 
    <student> 
    <name>mike</name> 
    <id>234</id> 
    </student> 
</Students> 
+3

請不要回答問題,除非作者發佈了他的研究成果!立即回答只是讓社區成爲免費編碼服務 – Inian

+0

我正在尋找使用xmlstarlet的shell腳本命令。如何使用REGED將SED歸檔。 –