Правильный способ редактирования XML - обрабатывать его как XML-документ, а не как строку. Это связано с тем, что XML-файл не гарантирует сохранение определенного форматирования. Любые изменения должны быть контекстно-зависимыми, а замена строк - нет. Рассмотрим три eqvivalent фрагментов XML:
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host >
<wsdl-host >${jboss.bind.address:127.0.0.1}</wsdl-host >
Обратите внимание, что whitespacing в именах элементов отличается и it's legal добавить некоторые. Более того, на практике, много реализаций просто выбросьте разрывы строк в значениях элементов, так что два следующих могут обеспечить одинаковые результаты в конфигурации парсера:
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
<wsdl-host>${jboss.bind.address:127.0.0.1}
</wsdl-host>
Это действительно не имеет большого смысла обрабатывать XML как строка, не так ли?
К счастью, Powershell имеет встроенную поддержку XML-файлов. Простой подход, как это так,
# Mock XML config
[xml]$x = @'
<root>
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
</root>
'@
# Let's change the wsdl-host element's contents
$x.root.'wsdl-host' = '${jboss.bind.address:0.0.0.0}'
# Save the modified document to console to see the change
$x.save([console]::out)
<?xml version="1.0" encoding="ibm850"?>
<root>
<wsdl-host>${jboss.bind.address:0.0.0.0}</wsdl-host>
</root>
Если вы не можете использовать Powershell и застряли с помощью пакетных сценариев, вам действительно нужно использовать 3rd программу манипуляции стороны XML.
Линия 1 - партия, остальное - PowerShell. –
Я хочу писать только в пакетном скрипте – venky
Вы не хотите редактировать файлы XML в пакетном режиме. Доверьтесь мне. –