在powershell中迭代XML和更新的更好方法?

时间:2015-05-14 22:18:52

标签: xml powershell

我让这个工作,但我对结果不满意,我想知道如何做得更好。

XML

<?xml version="1.0" encoding="UTF-8"?>
<configuration version="3">
  <library>
    <default-theme>None</default-theme> 
    <export-path>Default</export-path>
    <caching-enabled>True</caching-enabled>
  </library>
</configuration>

PS

Function ModifyConfigFile()
{
  $xml = New-Object -TypeName XML
  $xml.Load($FilePath)
  $item = $xml.configuration.library 
  $item.ChildNodes.Item(1)."#text" = "Modify-Test"
  $xml.Save($NewFilePath)
}

我正在尝试更新“导出路径”文本节点,此代码执行但该代码依赖于我知道此节点是其父库的子节点中的第二项。

有更清洁的方式吗?

或者至少有一种方法让我验证我是否正在更新我想要“export-path”的节点?

1 个答案:

答案 0 :(得分:0)

这里有一个更强大的“贝壳”和“#38;加载文件的方法,并结合PetSerAl评论

[xml]$doc = gc $filePath
$doc.configuration.library.'export-path' = "Modify-Test"
$doc.Save($filePath)