2010-07-08 26 views
9

nasıl <Test>Power</Test> için düğümün <Test>Test</Test> değerini değiştirebilirsiniz?PowerShell kullanarak XML düğümünün değerini nasıl güncelleyebilirim?

Örnek:

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

Burada anda kullandığınız PowerShell komut dosyası:

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

cevap

21

ben ulaşmak istediğiniz tam olarak ne olduğunu bilmiyorum, ama örnek size ve fikir vermelidir :

$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 for xpath queri kullanmanız gerekmez es. Sadece PowerShell ile kal (Select-Xml ile).
Get-Content aracılığıyla xml dosyasını yüklemek ve XmlDocument'u oluşturan [xml]'a dökmek ve dosya içeriğini yüklemek de yaygındır.

+0

Bir çekicilik gibi çalıştım. Lütfen bana ne diyebilir misin? Genel olarak%? –

+3

'Foreach nesnesi' anlamına gelir. 'Get-Alias ​​-Name%' – stej

+0

ile bulabileceğiniz $ $ xml.configuration.test' test değerine de erişebilirsiniz - Pretty slick (bir koleksiyonu değil) ama sonra foreach'i kullanabilirsiniz. $ xml.things) {$ thing.value}. Buradayım çünkü sürümümü artırdıktan sonra XML dosyamı kaydetmem gerekiyor. Ve bu bana yardımcı oldu. +1 – ppumkin

İlgili konular