2016-08-24 95 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归档。 –