2015-10-23 27 views
-1

我使用PowerShell 3.0和Windows Server从XML文件填充2012填充PowerShell的数组从XML

两个数组:

$a = @($Data.MessageGroup.Dataset[0].Series[1] | % {$_.Obs} | select TIME_PERIOD, OBS_VALUE) 
$b = @($Data.MessageGroup.Dataset[0].Series[3] | % {$_.Obs} | select TIME_PERIOD, OBS_VALUE) 

$a有680行这种格式的日期值: 2015-09-30
$b具有680行中的值的像:3051.4

我可以列出从每个ARR元件唉个别没有问题。 问题是当我尝试加入数组。

加入两个数组:

$c = $a, $b 

$c[0]列出了所有的日期;
$c[1]列出了所有的值。
但是当我尝试加入这两个数组时,它什么都不产生。

$c[0] -join " " 
+1

如何最终结果应该是什么样子? – PetSerAl

+0

'$ C = @($ A)+ @($ B)' –

+0

我所寻找的是这样的: 2015年8月31日\t 3060.3 2015年9月30日\t 3051.4 从swestner代码提供哪些产生如下结果: @ {TIME_PERIOD = 2015-08-31} @ {OBS_VALUE = 3060.3} – Riskworks

回答

0

这项工作?

$a = @($Data.MessageGroup.Dataset[0].Series[1] | % {$_.Obs} | select TIME_PERIOD, OBS_VALUE) 
$b = @($Data.MessageGroup.Dataset[0].Series[3] | % {$_.Obs} | select TIME_PERIOD, OBS_VALUE) 
$i=0 
$a | % {$_.TIME_PERIOD + " " + $b[$i++].OBS_VALUE} 

例如

$a = @(1, 2, 3) 
$b = @('a', 'b', 'c') 
$i=0 
$a | % {"$_ " + $b[$i++]} 

主要生产

1 a 
2 b 
3 c 
+0

您应该让您的示例看起来更多的XML-y,以避免它被标记或downvoted;它并不是很明显,它适用于这个问题。 –

+0

有趣的是,您的代码生成了以下内容:@ {TIME_PERIOD = 2015-08-31} @ {OBS_VALUE = 3060.3} @ {TIME_PERIOD = 2015-09-30} @ {OBS_VALUE = 3051.4}我期待的只是数组中的值例如2015-08-31 3060.3 2015-09-30 3051.4我是否必须差分处理数组才能获取值? – Riskworks

+0

对不起,我错过了选择。我会更新答案 – swestner