我有以下内容:
$aMyArray = $null [xml]$userfile = Get-Content C:\AppSense\Scripts\AmPolicyConversion\AM_dev.xml $i = 0 FOREACH ($j in $userfile.ChildNodes){ FOREACH($k in $j.DocumentElement) { } $i = $i + 1 }
我试图弄清楚如何遍历powershell中的每个元素.
然后检查元素上的SID属性.
如果存在获取属性值并将该值放入对象中,并且对于同一元素,则获取第二个属性DISPLAYNAME并放入同一对象中.我们将创建一个对象数组.
我知道我离开了,但希望你能帮忙.
使用XPATH代替查找具有SID属性的所有节点,如下所示:
$objs = @() $nodes = $userfile.SelectNodes("//*[@SID]") foreach ($node in $nodes) { $sid = $node.attributes['SID'].value $dispName = $node.attributes['DISPLAYNAME'].value $obj = new-object psobject -prop @{SID=$sid;DISPNAME=$dispName} $objs += $obj } $objs
这是输出的示例:
$xml = [xml]@" <doc> <foo SID='foosid' DISPLAYNAME="foodisp"> <bar SID='barsid' DISPLAYNAME="bardisp"/> <baz> <blech SID='blechsid' DISPLAYNAME="blechdisp"/> </baz> </foo> </doc> "@ $objs = @() $nodes = $xml.SelectNodes("//*[@SID]") foreach ($node in $nodes) { $sid = $node.attributes['SID'].value $dispName = $node.attributes['DISPLAYNAME'].value $obj = new-object psobject -prop @{SID=$sid;DISPNAME=$dispName} $objs += $obj } $objs
输出:
SID DISPNAME --- -------- foosid foodisp barsid bardisp blechsid blechdisp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。