.SelectSingleNode in Powershell-Skripts mithilfe von xPath, die nicht am extrahieren der Werte aus dem web.config-Datei

Okay, also hier ist das snippet von meinem web.config-Datei:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<location path="." inheritInChildApplications="false">
<connectionStrings>
...
</connectionStrings>
</location>
<location path="." inheritInChildApplications="false">
<appSettings>
<!--IT Ops-->
<add key="SomeOtherKey" value="SomeOtherValue" />
<add key="SiteDomain" value="somedomain.com" />
<add key="SomeOtherKey" value="SomeOtherValue" />
....
</appSettings>
</location>
</configuration>

Was ich versuche zu tun ist, suchen Sie den Knoten mit Hilfe von xPath-per Powershell. Ein paar Dinge zu beachten, über diese XML-Datei:

gibt es mehrere:

<location path="." inheritInChildApplications="false"> 

Werte in der xml-Datei. Umgeben Sie andere Knoten wie etc...

Ich finden kann, und ersetzen Sie die Verbindungszeichenfolge die Werte erfolgreich mit diesem script

$WebConfigFile = Join-Path $destination Web.config
[xml]$WebConfigXml = Get-Content ($WebConfigFile)
$WebConfigXml.configuration.location[2].connectionStrings.add | % { $_.connectionString = $_.connectionString -replace "some value", $sqlServerName }

Aber wenn ich auf ersetzen Sie die add key="SiteDomain" - Wert mit diesem Skript:

$node = $WebConfigXml.configuration.location[3].appSettings.SelectSingleNode("add[@key = 'SiteDomain']")
$node.value = "someValue"
$WebConfigXml.Save($WebConfigFile)

funktioniert es nicht. Das $node-Wert enthält in diesem Fall einen leeren string.

Ich versuche auch nur zu Lesen, die Knoten so:

$appSettingsSection = $WebConfigXml.configuration.location[3].appSettings;
$existingSiteDomain = $appSettingsSection.SelectSingleNode("add[@key='SiteDomain']")

Und ich bin noch immer eine leere Zeichenfolge für die $existingSiteDomain Wert.

Habe ich mir angeschaut Proben mit SelectSingleNode und ich kann nicht ganz scheinen, um es herauszufinden. Nicht zu wissen was ich falsch mache.

Dank,
Mike

InformationsquelleAutor Michael McCarthy | 2013-09-18

Schreibe einen Kommentar