如何使用xpath查找和替换并使用intellij限制范围?

时间:2018-08-31 18:23:15

标签: intellij-idea xpath

我想在IntelliJ 2017.3中的多模块项目中查找和替换依赖项。

没有找到了如何通过创建新的scope并将模式设置为file[*]:pom.xml来限制搜索范围的方法。

由于搜索是特定的,因此可以搜索整个<dependency>...</dependency>字符串,但是最新的搜索并不能使多行查找和替换变得非常清晰。

我想做的是使用xpath搜索/project/dependencies/dependency[./artifactId[text()='mymodule']并插入一个新节点<type>war</type>。有没有办法做到这一点?

我的find by xpath似乎并没有给我带来任何结果,而且我不知道如何插入。

1 个答案:

答案 0 :(得分:0)

您的XPath缺少最后一个]来关闭您的谓词:

/project/dependencies/dependency[./artifactId[text()='mymodule']]

您可以更简单地将其写为:

/project/dependencies/dependency[artifactId='mymodule']

我不相信只有"search by XPath"有“用XPath代替”。

如果您使用find and replace by regex,则可以搜索:

(<artifactId>[\n\s]*mymodule[\n\s]*</artifactId>)

并替换为:

$1\n<type>war</type>