У меня есть файл XML, в котором мне нужно изменить строку подключения. Ниже приведен пример файла.
<policy>
<application-policy name="Part1">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname:1521/test=</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="Part2">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname:1521/test=</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="Part3">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname:1521/test=</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="Part4">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname:1521/test</module-option>
</login-module>
</authentication>
</application-policy>
</policy>
Как мне изменить строку "jdbc:oracle:thin:@hostname: 1521 / test", которая находится в пределах module-option
в четырех местах.
Строка всегда одна и та же и будет заменена четыре раза из одной и той же переменной.
Ниже приведено то, что я пробовал, но оно только меняет собственно имя "dbUrl" и только первое время.
$xmlFile = "C:\Users\Dan\Desktop\login-Config.xml"
[xml]$doc = Get-Content $xmlFile
$node = $doc.SelectSingleNode("/policy/application-policy/authentication/login-module/module-option[@name='dbUrl']")
$node.name = "jdbc:oracle:thin:@hostname1:1521/test1"
$doc.Save($xmlFile)
Ниже я хотел бы, чтобы вывод выглядел так.
<policy>
<application-policy name="Part1">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname1:1521/test1/test=</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="Part2">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname1:1521/test1/test=</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="Part3">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname1:1521/test1/test=</module-option>
</login-module>
</authentication>
</application-policy>
<application-policy name="Part4">
<authentication>
<login-module code="jboss.loginmodule" flag="required">
<module-option name="allowEmptyPasswords">false</module-option>
<module-option name="dbUrl">jdbc:oracle:thin:@hostname1:1521/test1/test</module-option>
</login-module>
</authentication>
</application-policy>
</policy>