Как я могу обновить значение для узла XML с помощью PowerShell? - PullRequest
10 голосов
/ 08 июля 2010

Как мне изменить значение узла <Test><b>Test</b></Test> на <Test><b>Power</b></Test>?

Пример :

<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="DeploymentDate" value="test" />
        <add key="DateOfInitialization" value="Vinoj" />
    </appSettings>
    <Test>Test</Test>
</configuration>

Вот сценарий PowerShell, который я сейчас использую:

$configuration = "app.config"
[xml]$xml = New-Object XML
$xml.Load($configuration)
$xml.selectnodes("/configuration/Test") = {"UST"}
$xml.Save($configuration)

1 Ответ

24 голосов
/ 08 июля 2010

Я не знаю, чего именно вы хотите достичь, но пример должен дать вам и идею:

$file = 'c:\temp\aa\ServerService.exe.config'
$x = [xml] (Get-Content $file)
Select-Xml -xml $x  -XPath //root/level |
    % { $_.Node.'#text' = 'test'
        $_.Node.SomeAttribute = 'value'
      }
$x.Save($file)

Вам не нужно использовать .NET для запросов xpath. Просто оставайтесь с PowerShell (с Select-Xml).
Также обычно загружают XML-файл через Get-Content и приводят его к [xml], который создает XmlDocument и загружает содержимое файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...