powershell xml xpath

Yuv*_*led 10 xml powershell xpath

在Powershell中,假设我有以下xml:

  <Users>
    <User Name="Foo">
      <Friends>
        <Friend Name="Bar"/>
      </Friends>
    </User>
    <User Name="Foo2" />
    <User Name="Foo3">
      <Friends>
        <Friend Name="Bar"/>
      </Friends>
    </User>
  </Users>
Run Code Online (Sandbox Code Playgroud)

如何让所有拥有"Bar"的用户成为朋友?(在这个例子中,它将是Foo,Foo3).

我应该使用xpath吗?

谢谢!

Kei*_*ill 14

这些天我喜欢使用XPath.我遇到了使用PowerShell的xml适配器的问题,这些问题就像名字冲突一样烦人item:

$xml = [xml]@'
  <Users> 
    <User Name="Foo"> 
      <Friends> 
        <Friend Name="Bar"/> 
      </Friends> 
    </User> 
    <User Name="Foo2" /> 
    <User Name="Foo3"> 
      <Friends> 
        <Friend Name="Bar"/> 
      </Friends> 
    </User> 
  </Users> 
'@

Select-Xml '//User[contains(Friends/Friend/@Name, "Bar")]' $xml |%{$_.Node.Name}
Run Code Online (Sandbox Code Playgroud)