如果找到字符串标签,xmlstarlet 删除元素
xmlstarlet delete element if string found tag
如果在任何标签中发现 epm_default_cloud_admin,我需要删除下面的整个 cellNote 元素,用 xmlstarlet 尝试了不同的东西,但它不会发生;你能帮忙吗?
<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']'
首先,要处理一个有效的 xml - 确保 cell
标签同时具有开始和结束标签(您的输入都包含开始 <cell>
)。
xml小明星解法:
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>
如果在任何标签中发现 epm_default_cloud_admin,我需要删除下面的整个 cellNote 元素,用 xmlstarlet 尝试了不同的东西,但它不会发生;你能帮忙吗?
<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']'
首先,要处理一个有效的 xml - 确保 cell
标签同时具有开始和结束标签(您的输入都包含开始 <cell>
)。
xml小明星解法:
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>