XPATH和XMLStarlet

时间:2016-05-26 14:34:38

标签: xpath xmlstarlet

我现在正在努力完成以下任务。我正在尝试使用XMLStarlet删除空XML条目。

我尝试使用此XPATH:

//*[not(./*) and (not(./text()) or normalize-space(./text())='')]

我已经在http://www.freeformatter.com/xpath-tester.html上对其进行了测试,并且按预期工作。与XMLStarlet配合使用不起作用:

xmlstarlet ed -d '//*[not(./*) and (not(./text()) or normalize-space(./text())='')]'

这可能是什么原因?

1 个答案:

答案 0 :(得分:2)

尝试在双引号中使用引号,反之亦然。

对于你的例子:

xmlstarlet ed -d '//*[not(./*) and (not(./text()) or normalize-space(./text())="")]'

xmlstarlet ed -d "//*[not(./*) and (not(./text()) or normalize-space(./text())='')]"