我需要pom.xml
在目录树的许多中列出这两个元素中的文本。这些文件也可能包含其他地方的元素,我只是在寻找这两个的内容。
理想情况下,我正在寻找一种以格式输出的工具<file-name>:<line-no>:<path>:<text>
,例如
parent/pom.xml:12:/project/groupId:com.acme.project
features/persist/pom.xml:14:/project/parent/groupId:com.acme.project
features/persist/pom.xml:32:/project/groupId:com.acme.project.persist
对于以下输入文件:
**parent/pom/xml**
<project>
...
<groupId>
com.acme.project <!--LINE 12 -->
</groupId>
...
</project>
**feature/persist/pom.xml**
<project>
<parent>
<groupId>
com.acme.project <!--LINE 14 -->
</groupId>
</parent>
...
<groupId>
com.acme.project
</groupId>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
a.b.c.d <!-- this is not listed in output -->
</groupId>
</dependency>
</dependencies>
</dependencyManagement>
</project>
请注意,其他路径如dependencyManagement/dependencies/dependency/groupId
不包括在内。
在 SO 上搜索时,我遇到了xmllint --xpath
xmlstarlet ,但我对 xpath 的了解不够,无法自己解决。