2017-09-19 14 views
2

epm_default_cloud_adminが任意のタグで見つかった場合は、以下のcellNote要素全体を削除し、xmlstarletで別のものを試してみてください。私は以下試したxmlstarlet delete要素で文字列が見つかった場合

<cell> 
<cellNote> 
<DIM1>Actual</DIM1> 
<author>epm_default_cloud_admin</author> 
<modified>2016-11-16 08:28:38.0</modified> 
<title></title> 
</cellNote> 
<cellNote> 
<DIM1>Actual</DIM1> 
<contents>Variance in meals is due to Annual Sales Conference</contents> 
<author>Frank</author> 
<modified>2016-12-23 20:10:13.0</modified> 
<title></title> 
</cellNote> 
<cell> 

いくつかのこと:まず

xmlstarlet ed -a "/cell/cellNote" --type elem -n string -v "epm_default_cloud_admin" 
xmlstarlet ed -d '/cell/cellNote/author[. = 'epm_default_cloud_admin']' 

答えて

1

、有効なXMLを扱う - cellタグは(あなたの入力が開放<cell>としての両方を含む)の開閉タグの両方を持っていることを確認してください。

xmlstarletソリューション:

xmlstarlet ed -d "//cellNote[*[contains(text(),'epm_default_cloud_admin')]]" input.xml 

出力:

<?xml version="1.0"?> 
<cell> 
    <cellNote> 
    <DIM1>Actual</DIM1> 
    <contents>Variance in meals is due to Annual Sales Conference</contents> 
    <author>Frank</author> 
    <modified>2016-12-23 20:10:13.0</modified> 
    <title/> 
    </cellNote> 
</cell> 
+0

darknight1906 @、あなたはdarknight1906 @ – RomanPerekhrest

+0

歓迎している - また、あなたの2回目の試行で接近していた: 'xmlstarlet編-d "/ cell/cellNote [author = 'epm_default_cloud_admin']" ' –

+1

@DanielHaley、彼は近くにいましたが、* ** epm_default_cloud_adminが**任意の**タグ* – RomanPerekhrest

関連する問題