Powershell XML节点行为

问题描述 投票:0回答:1

我有一个XML,如果他没有某个时间戳的数据,他没有输入,但要将其转换为Excel工作表,我需要用数组内的0替换不存在的值,如果它真的存在我接受测量并将其放入我的数组中。

for ($i = 0; $i -le $applicationArray.Length - 1; $i++) {
    $node = $xdoc3.dashboardreport.data.chartdashlet[$i]
    $node.name   
    for ($j = 0; $j -le $aantaldagenInDeMaand - 1; $j++) {  
        try {
            if ($node.measures.measure.measure.measurement[$j].timestamp -ne $allDates[$j]) {
                $LastmesOG += "0"
            }
            else{
                    $LastmesOG += $node.measures.measure.measure.measurement[$j].sum
            }
        }
        catch {
            $LastmesOG += "0"
        }   
        $index++
        Write-Host "name: " $node.name " i: " $i " measure: " $LastmesOG[$j] " j: " $j
    }
}

正如您在输出中看到的,我从chartdashlet节点获取的名称是正确的,但所有度量都会从第一个chartdashlet节点返回。这是怎么发生的?

示例输出:

APP1
name:  APP1 i:  0  measure:  840.0  j:  0
name:  APP1 i:  0  measure:  718.0  j:  1
name:  APP1 i:  0  measure:  106.0  j:  2
name:  APP1 i:  0  measure:  6.0  j:  3
APP2 
name:  APP2 i:  1  measure:  840.0  j:  0
name:  APP2 i:  1  measure:  718.0  j:  1
name:  APP2 i:  1  measure:  106.0  j:  2
name:  APP2 i:  1  measure:  6.0  j:  3
APP3 
name:  APP3 i:  2  measure:  840.0  j:  0
name:  APP3 i:  2  measure:  718.0  j:  1
name:  APP3 i:  2  measure:  106.0  j:  2
name:  APP3 i:  2  measure:  6.0  j:  3
xml powershell
1个回答
0
投票

好吧,经过2个小时的挫折并发布了这个,我找到了它。添加$ LastmesOG值,但由于$ LastMesOG [$ j],我总是调用它的第一个值,而不是现在$ Lastmesog [$ lastmesog.length-1]

© www.soinside.com 2019 - 2024. All rights reserved.