Как я могу найти и заменить с помощью xpath и ограничить объем с помощью intellij? - PullRequest
0 голосов
/ 31 августа 2018

Я хочу найти и заменить зависимость в многомодульном проекте в IntelliJ 2017.3.

Я обнаружил , как ограничить область поиска, создав новый scope и установив шаблон в file[*]:pom.xml.

Так как поиск специфичен, я мог бы искать всю строку <dependency>...</dependency>, но последний поиск не делает многострочным поиск и замену очень разборчивым.

Я бы хотел xpath найти /project/dependencies/dependency[./artifactId[text()='mymodule'] и вставить новый узел <type>war</type>. Есть ли способ сделать это?

Мой find by xpath, кажется, не дает мне никаких результатов, и я не знаю, как сделать вставку, если она была.

1 Ответ

0 голосов
/ 31 августа 2018

В вашем XPath отсутствует последний ] для закрытия вашего предиката:

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

Вы могли бы проще написать это как:

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

Я не верю, что существует "замена по XPath", только "поиск по XPath" .

Если вы использовали найти и заменить на регулярное выражение , вы можете найти:

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

и заменить на:

$1\n<type>war</type>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...