gpt4 book ai didi

xml - 遍历 xml 元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:41:34 25 4
gpt4 key购买 nike

我有以下内容:

$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

关于xml - 遍历 xml 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com