xmlstarlet для удаления расширения или подсистемы или значения wildfly?
Я пытаюсь использовать xmlstarlet для удаления расширения в дико настроенном конфигурационном файле aka standalone.xml, но, похоже, это не работает.
Вот что я делаю:
xmlstarlet el -v /tmp/standalone.xml |grep ejb
Что возвращает мне xpath расширения, которое я хочу удалить:
server/extensions/extension[@module='org.jboss.as.ejb3']
Затем я пытаюсь удалить его с помощью "ed -d ", но он остается в наличии:
xmlstarlet ed -d 'server/extensions/extension[@module="org.jboss.as.ejb3"]' /tmp/standalone.xml |head
Любая идея?
1 ответ
Вот окончательное решение, которое не является сверхинтуитивным, поскольку требует добавления префикса пространства имен для каждого объекта, а не только на корневом уровне. (Нам нужно повторить префикс d: на каждом уровне xpath)
xmlstarlet ed -N d="urn:jboss:domain:5.0" -d "d:server/d:extensions/d:extension[@module='org.jboss.as.ejb3']" standalone/configuration/standalone.xml
спасибо Аарону также за то, что он указал на документацию, которая дает несколько входов.