У меня есть файл XML (назовем его module.xml), как показано ниже открыт в редакторе, например Notepad ++/Geany:Поиск и замена только в определенных тегов и атрибутов в XML-файл с помощью Regex
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="head">
<action method="addItem"><type>skin_js</type><name>module/js/jquery.js</name></action>
<action method="addItem"><type>skin_js</type><name>module/js/module-slider.js</name></action>
<action method="addItem"><type>skin_css</type><name>module/module.css</name></action>
<action method="addItem"><type>skin_js</type><name>module/js/module-video.js</name></action>
<action method="addItem"><type>skin_js</type><name>module/js/nicEdit-latest.js</name></action>
</reference>
<reference name="left">
<block type="module/subscribe" name="module.left.subscribe" template="module/left-sidebar.phtml" />
</reference>
<reference name="right">
<block type="module/subscribe" name="module.right.subscribe" template="module/right-sidebar.phtml" before="-" />
</reference>
<reference name="top.links">
<action method="addLink" translate="label title" module="module" ifconfig="module/settings/quicklinks">
<label>Module Title</label>
<url>module</url>
<title>Module Title</title>
<prepare>true</prepare>
<urlParams/>
<position>99</position>
</action>
</reference>
<reference name="footer_links">
<action method="addLink" translate="label title" module="module" ifconfig="module/settings/quicklinks">
<label>Module Title</label>
<url>module</url>
<title>Module Title</title>
<prepare>true</prepare>
<urlParams/>
<position>99</position>
</action>
</reference>
</default>
<module_index_index>
<reference name="content">
<block type="module/list" name="module_list" template="module/list.phtml" />
</reference>
</module_index_index>
<module_create_index>
<reference name="content">
<block type="module/list" name="module.create">
<action method="setTemplate"><template>module/create.phtml</template></action>
</block>
</reference>
</module_create_index>
</layout>
Теперь я хочу замените строку module/
на mycompany/module/
только тегами и атрибутами, содержащими только .phtml
, т. е. в содержании template
атрибута и <template>
тег.
Как это сделать с помощью регулярного выражения? Я не знаю, когда дело доходит до выборочного поиска/замены в регулярном выражении.
Почему бы вам не использовать парсер? –
Этот файл проверен в редакторе, у меня установлен ubuntu 14.04, поэтому, если вы не предложите мне использовать sed/awk, я не могу использовать XML-парсер в редакторе (как я уже сказал в запросе), поскольку я не знаю, есть ли доступно для Geany/Notepad ++ –
Что-то вроде [this] (https://regex101.com/r/6MS8ry/1)? –