Я пытаюсь написать сценарий PowerShell, чтобы заменить содержимое тегов, которые я поместил в файл XML.Теги появляются в XML несколько раз, это приводит к замене всего между первым и последним тегом, поскольку он не останавливается при первом обнаружении конечного тега.
Я использую это:
$NewFile = (Get-Content .\myXML_file.xml) -join "" | foreach{$_ -replace "<!--MyCustom-StartTag-->(.*)<!--MyCustom-EndTag-->","<!--MyCustom-StartTag-->New Contents of Tag<!--MyCustom-EndTag-->"};
Set-Content .\newXMLfile.xml $newfile;
Файл имеет следующее содержимое:
<!--MyCustom-StartTag-->
Lots of content
<!--MyCustom-EndTag-->
More stuff here
<!--MyCustom-StartTag-->
Lots of content
<!--MyCustom-EndTag-->
И я заканчиваю на:
<!--MyCustom-StartTag-->
New Content Here
<!--MyCustom-EndTag-->
Вместо:
<!--MyCustom-StartTag-->
New content
<!--MyCustom-EndTag-->
More stuff here
<!--MyCustom-StartTag-->
New content
<!--MyCustom-EndTag-->
Iпытался использовать: (?!MyCustom-StartTag)
, но это тоже работает.
Любые идеи о том, что я должен сделать, чтобы заставить это работать.
Спасибо, Ричард