循环遍历xml元素
发布时间:2020-12-16 07:50:43 所属栏目:百科 来源:网络整理
导读:我有以下内容: $aMyArray = $null[xml]$userfile = Get-Content C:AppSenseScriptsAmPolicyConversionAM_dev.xml$i = 0FOREACH ($j in $userfile.ChildNodes){ FOREACH($k in $j.DocumentElement) { } $i = $i + 1} 我试图弄清楚如何遍历powershell中的
我有以下内容:
$aMyArray = $null [xml]$userfile = Get-Content C:AppSenseScriptsAmPolicyConversionAM_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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ios – 自定义UINavigationBar可在模拟器上运行,但不适用于
- React Native封装Toast与加载Loading组件
- ruby-on-rails – “未定义的方法`process_route’”,当你去
- TOUCHXML解析xml
- ruby-on-rails – 将散列键转换为小写 – Ruby Beginner
- 单元测试 – 我应该对不应该在函数中传递的数据(无效输入)进
- cdh PostgreSQL
- 修改generator源码之xml添加新的sql元素
- 使用一个shape.xml文件,使用代码设置不同圆角背景颜色
- ruby-on-rails – 有没有办法解决Rails删除的迁移?