I have an XML file that I need to amend the connection string within. Below is an example of the file.
<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>
How can I change the string "jdbc:oracle:thin:@hostname:1521/test" that comes within module-option in the four places.
The string is always the same and will be replaced four times from the same variable.
Below is what I have tried but it is only changing the actually name "dbUrl" and only the first time.
$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)
Below is what I would like the output to look like.
<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>