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

спасибо Аарону также за то, что он указал на документацию, которая дает несколько входов.

Другие вопросы по тегам