xmlstarlet для удаления расширения или подсистемы или значения wildfly? - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь использовать 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 Ответ

0 голосов
/ 26 сентября 2018

Вот окончательное решение, которое не является сверхинтуитивным, поскольку требует добавления префикса пространства имен для каждого объекта, а не только на корневом уровне.(Нам нужно повторить префикс 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

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

...