2016-08-17 2 views
0

私はPowerShellスクリプトとXMLファイルを少し使いました。このようなPowerShellで項目innerXmlを変更します

<?xml version="1.0" encoding="utf-8"?> 
<Settings> 
    <ARP> 
    <ConfigVLAN> 
     <Vlan>Vlan1</Vlan> 
     <Vlan>Vlan2</Vlan> 
     <Vlan>Vlan3</Vlan> 
     <Vlan>Vlan4$</Vlan> 
    </ConfigVLAN> 
    </ARP> 
</Settings> 

そして、私のPowerShellスクリプト:

function modifyXmlItem ($selectedItem, $newValue) { 

    $node = $xml.Settings.ARP.configVLAN | where {$_ -eq $selectedItem} 
    $node = $newValue 
    $xml.Save($path) 
} 

だから私は、テキストボックスからの値でVLAN1の値を変更したい は現在、XMLファイルは、次のようにフォーマットされています。 I値がテキストボックスを形成し得ることができ、私は値が(VLAN 1)を選択し得ることができますが、私は...

を「VLAN1」に変更することができなかった。しかし、この機能は動作しません... 私は多くを試してみましたウェブが、なしの作業から提供されたソリューション...

あなたは ...私を助けてくださいことができます(私の悪い英語のため申し訳ありませんが...)

+1

が期待したものです上記のXMLを入力として与えられた出力?そのような出力を達成するために今まで何を試してきたかを示してください... – har07

+0

'$ selectedItem'のタイプは何ですか?最初の行の後に '$ node'とは何ですか? –

+0

'$ selectedItem'の型はStringです。 Et '$ node'には、選択した値が含まれています – Thibaultc

答えて

0

これを試してみてください:

$xml = [xml]'<?xml version="1.0" encoding="utf-8"?> 
<Settings> 
    <ARP> 
    <ConfigVLAN> 
     <Vlan>Vlan1</Vlan> 
     <Vlan>Vlan2</Vlan> 
     <Vlan>Vlan3</Vlan> 
     <Vlan>Vlan4$</Vlan> 
    </ConfigVLAN> 
    </ARP> 
</Settings>' 
$selectedItem = 'Vlan4$' 

$xml.Settings.ARP.ConfigVLAN.SelectSingleNode("Vlan[text()=""$($selectedItem)""]").InnerText = "NewValue" 
$xml.Save('d:\temp\out.xml') 
+0

Genial、It Works!ありがとうございます ! – Thibaultc

関連する問題