xmlstarlet 删除具有范围的节点

xmlstarlet delete node with range

我想知道如何使用以下命令删除具有范围的节点。

单节点删除工作正常:

xmlstarlet ed -L -d '//job/input/audio_selector[2]' profile.xml

如果我想删除范围内的节点,如何实现。

示例从范围 2 到 20 中删除一个节点 audio_selector:

如果您尝试根据位置删除 audio_selector,请尝试:

xmlstarlet ed -L -d '//job/input/audio_selector[position() >= 2 and 20 >= position()]' profile.xml

如果您尝试根据值删除 audio_selector,请尝试:

xmlstarlet ed -L -d '//job/input/audio_selector[number() >= 2 and 20 >= number()]' profile.xml