.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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihrer XML-Datei einen namespace:
so müssen Sie einen namespace-manager für
SelectSingleNode
(siehe Abschnitt "Bemerkungen"):Etwas wie dies funktionieren sollte:
Okay, ich ändere meine vorherigen Kommentar. Es funktioniert jetzt. Ich denke, es gibt einige andere syntax Problem in meinem Skript, das diesen Fehler verursacht. Der code, den Sie zur Verfügung gestellt hat funktioniert! Dank so viel. Ich bin neu in der Powershell und xPath, so dass ich keine Ahnung hatte, die über diesen namespace Problem.
InformationsquelleAutor Ansgar Wiechers