我试图使用xmlstarlet从Maven POM.XML中找到一个特定的groupId和artifactId,但没有成功。这是我正在使用的命令:
xmlstarlet sel -N pom=http://maven.apache.org/POM/4.0.0 -t
-m "/pom:project/pom:dependencyManagement/pom:dependencies/pom:dependency[.//pom:groupId=com.mygroup.xxx]"
-v '.' pom.xml
感谢您的帮助。
编辑:感谢npostavs,对于其他有相同问题的人,也可以组合更多的表达式并根据更多元素过滤结果:
xmlstarlet sel -N pom=http://maven.apache.org/POM/4.0.0 -t -m "/pom:project/pom:dependencyManagement/pom:dependencies/dependency[.//pom:groupId='com.mygroup.xxx'][.//pom:artifactId='myartifact-xxx']" -v '.' pom.xml
pom:groupId=com.mygroup.xxx
您需要在字符串文字pom:groupId='com.mygroup.xxx'
周围加引号,否则它将查找名为com.mygroup.xxx
的XML元素。