添加xml属性“xsi:nil”

时间:2013-07-27 19:59:26

标签: powershell powershell-v2.0 xml-nil

我正在PowerShell中阅读以下文件。

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <nested1>
    <level1 xsi:nil="true" />
    <level2>2</level2>
  </nested1>
  <nested2>
    <level1 xsi:nil="true" />
    <level2>2</level2>
  </nested2>
</root>

...使用

[xml]$XmlDoc = get-content $XMLFile

我想设置 $ XmlDoc.root.nested1.level2 所以它的属性为xsi:nil =“true”

所以文件显示为

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <nested1>
    <level1 xsi:nil="true" />
    <level2 xsi:nil="true" />
  </nested1>
  <nested2>
    <level1 xsi:nil="true" />
    <level2>2</level2>
  </nested2>
</root>

非常感谢您提出的任何建议。

1 个答案:

答案 0 :(得分:4)

使用SetAttribute()并提供名称空间URI。

$node = $XmlDoc.SelectSingleNode('//nested1/level2')
$node.SetAttribute('nil', 'http://www.w3.org/2001/XMLSchema-instance', 'true') | 
    Out-Null