2013-11-28 2 views
1

Допустим, у меня есть этот XML-файлОбновление XML конкретное значение с помощью PowerShell

<section name="AAA"> 
    <Item1>FALSE</Item1> 
    <Item2>FALSE</Item2> 
    <Item3>FALSE</Item3> 
</section> 
<section name="BBB"> 
    <Item1>FALSE</Item1> 
    <Item2>FALSE</Item2> 
    <Item3>FALSE</Item3> 
</section> 

Как я могу обновить определенное значение с помощью PowerShell (с помощью XPath это правильный путь?)

Значение обновления ITEM2, что под название секции = "BBB"

+0

Какой желаемый выход? – vonPryz

+0

+1 для использования XSLT вместо регулярных выражений. Проверьте это: http://www.hanselman.com/blog/XSLTWithPowershell.aspx – hek2mgl

ответ

1

Предполагая, что ваш XML имеет корневой узел с именем root и документ загружается как $doc, следующее будет печатать измененный документ на консоли.

$doc.root.SelectSingleNode("section[@name='BBB']/Item2")."#text" = "True" 
$doc.Save([console]::out) 
# Output 
<?xml version="1.0" encoding="ibm850"?> 
<root> 
    <section name="AAA"> 
    <Item1>FALSE</Item1> 
    <Item2>FALSE</Item2> 
    <Item3>FALSE</Item3> 
    </section> 
    <section name="BBB"> 
    <Item1>FALSE</Item1> 
    <Item2>True</Item2> 
    <Item3>FALSE</Item3> 
    </section> 
</root> 
Смежные вопросы