У меня есть 2 файла (long.xml
и sort.xml
файлов) с тем же форматом:Заменить конкретные строки файлов с помощью заводной
<?xml version="1.0" encoding="UTF-8"?>
<psf version="2.0">
<provider id="org.eclipse.team.cvs.core.cvsnature">
<project reference="1.0,:pserver:url:/cvs/SynBusStop,Account Interest,Account Interest,branch_A_B"/>
<project reference="1.0,:pserver:url:/cvs/SynInf,ActiveMQ Libraries,ActiveMQ Libraries,branch_A_B"/>
<project reference="1.0,:pserver:url:/cvs/SynBusStop,Alert,Alert,branch_B_B"/>
<project reference="1.0,:pserver:url:/cvs/SynBusStop,Alert Adaptor,Alert Adaptor,branch_A_B"/>
<project reference="1.0,:pserver:url:/cvs/SynInf,Ant Extensions Syn,Ant Extensions Syn,branch_A_B"/>
</provider>
</psf>`
все в sort.xml
должны быть в long.xml
.
Я хочу написать script
для поиска sort.xml, чтобы обновлять новую информацию от sort.xml
до long.xml
(обычно обновлять ветви). Это мой сценарий:
def source = new File('Path:\\sort.xml')
def dest = new File('Path:\\long.xml')
text = dest.text
text.eachLine
{
if(it.contains("/cvs/SynBusStop,Account Interest,"))
{
println it
text = text.replace("branch_A_B", "new_Branch")
dest.write(text);
}
}
`
Но он заменил каждую строку, содержащую branch_A_B
. Может ли кто-нибудь помочь мне в этом случае, я новичок в Groovy, спасибо вам заранее.
Я предполагаю, что это не путь ... XML-синтаксис кажется лучшей идеей. – Opal
Согласен, это действительно не тот маршрут, который нужно взять ... Разберите оба файла ('XmlSlurper'?), А затем обработайте один из них. –
Можете ли вы показать свои входы и ожидаемые результаты? Может быть, кто-то может придумать не хрупкое решение? –