使用xmstarlet从maven pom.xml中查找特定的groupId

时间:2015-02-06 16:13:50

标签: xmlstarlet

我试图使用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

1 个答案:

答案 0 :(得分:3)

  

pom:groupId=com.mygroup.xxx

您需要围绕字符串文字引用:pom:groupId='com.mygroup.xxx',否则它会查找名为com.mygroup.xxx的XML元素。