Я пытаюсь извлечь значение узла из pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<parent>
<groupId>org.me.labs</groupId>
<artifactId>my-random-project</artifactId>
<version>1.5.0</version>
</parent>
...
</project>
Мне нужно извлечь артефакт и версию из XML с помощью команды оболочки. У меня есть следующие требования/наблюдения:
- Сценарий оболочки будет выполнен в файле сборки сборки, который мы используем на работе, поэтому чем меньше сценарий, тем лучше.
- Поскольку он будет использоваться в нескольких системах (обычно RHEL5), я ищу что-то, что может работать изначально на образах по умолчанию.
- Подобные теги могут встречаться в другом месте pom, поэтому я не могу просто использовать эти теги.
Я пробовал следующее:
xpath
работает на моем Mac, но по умолчанию недоступен на компьютерах RHEL. Аналогично дляxmllint --xpath
, который, я думаю, доступен только в более поздних версияхxmllint
, которого у меня нет и я не могу применить.xmllint --pattern
показался многообещающим, но я не могу получить вывод изxmllint --pattern '//project/parent/version' pom.xml
(распечатывает весь XML) илиxmllint --stream --pattern '//project/parent/version' pom.xml
(без вывода).
Я понимаю, что это распространенный вопрос здесь, на SO, но из-за приведенных выше пунктов я не могу использовать эти ответы. ТИА за помощь.