У меня есть типичный pom.xml и хочу напечатать groupId, artifactId и версию, разделенные двоеточием. Я думаю, что XMLStarlet - правильный инструмент для этого. Я пробовал несколько способов, но всегда получаю пустую строку.XMLStarlet ничего не выбирает
xml sel -t -m project -v groupId -o : -v artifactId -o : -v version pom.xml
Ожидаемый результат:
org.something.apps:app-acct:5.4
Реальный выход: пустая строка
Даже если я пытаюсь напечатать только идентификатор_группы я ничего не получаю:
Я уверен, что инструмент видит элементы, потому что я могу их перечислить без проблем:
xml el pom.xml
печатает следующее (правильно):
project
project/modelVersion
project/parent
project/parent/groupId
project/parent/artifactId
project/parent/version
project/groupId
project/artifactId
project/version
project/packaging
Что случилось?
Вот сокращенная версия pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.something</groupId>
<artifactId>base</artifactId>
<version>1.16</version>
</parent>
<groupId>org.something.apps</groupId>
<artifactId>app-acct</artifactId>
<version>5.4</version>
<packaging>war</packaging>
</project>
Ваш комментарий о префиксах элементов с (псевдоним для?) Объявленного пространства имен является решающим отличием от связанных документов. – chernevik