添加xml属性“ xsi:nil”

use*_*260 2 powershell powershell-2.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>
Run Code Online (Sandbox Code Playgroud)

使用...

[xml]$XmlDoc = get-content $XMLFile
Run Code Online (Sandbox Code Playgroud)

我想设置$ 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>
Run Code Online (Sandbox Code Playgroud)

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

And*_*ndi 5

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

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