2013-04-04 39 views
1

我想知道哪些是最好的方法來刪除蔬菜產品節點而不影響肉製品節點。如何從命令行刪除父XML節點

<Product> 
    <Type>Meat</Type> 
    <Object> 
     <ID>1</ID> 
    </Object> 
    </Product> 
<Product> 
    <Type>Vegetables</Type> 
    <Object> 
     <ID>1</ID> 
    </Object> 
    </Product> 
+0

示例代碼片段沒有完整的XML文件。我們可以假設你的意思是一個帶有根標籤的xml文件嗎? – halloleo 2014-02-02 06:10:17

回答

0

將您的片段包裝到頂級標記中以創建格式良好的XML文件。然後使用例如命令行工具xmlstarlet修改XML。

對於你的情況staep一步的指示:

  1. 添加一個頂級標籤,比如說,MyTopLevelTag,讓你的XML文件看起來像:

    肉類 蔬菜

保存爲how-to-remove-vegetables_wrapped.xml

  1. 安裝xmlstarlet。 (在OSX下,您可以使用homebrew)。

  2. 鍵入你的shell:

    XML編輯-d 「/ MyTopLevelTag /產品[類型= '蔬菜']」 怎麼去除的-vegetables_wrapped.xml

神奇的是在XPath /MyTopLevelTag/Product[Type = 'Vegetables']中:您選擇Product標記,但您將其限制爲type的值爲'Vegetables'的子項。