【发布时间】:2016-12-11 02:35:47
【问题描述】:
我有一个来自 HPE 服务器上的固件检查脚本的 XML 输出。
我想创建一个数组来为每个索引定义FIRMWARE_NAME VALUE = FIRMWARE_VERSION VALUE。
如您所见,Path 不一致,服务器之间可能存在或多或少的索引,因此创建循环失败,可能是因为我也不擅长 PowerShell,因此寻求帮助。
演示脚本如下:
$xml = [xml]@"
<HEAD>
<RIBCL VERSION="2.23">
<RESPONSE
STATUS="0x0000"
MESSAGE='No error'
/>
<GET_EMBEDDED_HEALTH_DATA>
<FIRMWARE_INFORMATION>
<INDEX_1>
<FIRMWARE_NAME VALUE = "iLO"/>
<FIRMWARE_VERSION VALUE = "2.40 Dec 02 2015"/>
</INDEX_1>
<INDEX_2>
<FIRMWARE_NAME VALUE = "System ROM"/>
<FIRMWARE_VERSION VALUE = "I31 06/01/2015"/>
</INDEX_2>
<INDEX_3>
<FIRMWARE_NAME VALUE = "Redundant System ROM"/>
<FIRMWARE_VERSION VALUE = "I31 04/01/2015"/>
</INDEX_3>
<INDEX_4>
<FIRMWARE_NAME VALUE = "Intelligent Provisioning"/>
<FIRMWARE_VERSION VALUE = "1.62.31"/>
</INDEX_4>
<INDEX_5>
<FIRMWARE_NAME VALUE = "Intelligent Platform Abstraction Data"/>
<FIRMWARE_VERSION VALUE = "1.55"/>
</INDEX_5>
<INDEX_6>
<FIRMWARE_NAME VALUE = "System ROM Bootblock"/>
<FIRMWARE_VERSION VALUE = "03/05/2013"/>
</INDEX_6>
<INDEX_7>
<FIRMWARE_NAME VALUE = "Power Management Controller Firmware"/>
<FIRMWARE_VERSION VALUE = "3.3"/>
<FIRMWARE_FAMILY VALUE = "0Ch"/>
</INDEX_7>
<INDEX_8>
<FIRMWARE_NAME VALUE = "Power Management Controller Firmware Bootloader"/>
<FIRMWARE_VERSION VALUE = "2.7"/>
</INDEX_8>
<INDEX_9>
<FIRMWARE_NAME VALUE = "System Programmable Logic Device"/>
<FIRMWARE_VERSION VALUE = "Version 0x13"/>
</INDEX_9>
<INDEX_10>
<FIRMWARE_NAME VALUE = "Server Platform Services (SPS) Firmware"/>
<FIRMWARE_VERSION VALUE = "2.1.7.E7.4"/>
</INDEX_10>
<INDEX_11>
<FIRMWARE_NAME VALUE = "Smart Array P220i Controller"/>
<FIRMWARE_VERSION VALUE = "6.68"/>
</INDEX_11>
<INDEX_12>
<FIRMWARE_NAME VALUE = "HP FlexFabric 10Gb 2-port 554FLB Adapter"/>
<FIRMWARE_VERSION VALUE = "10.5.155.0"/>
</INDEX_12>
</FIRMWARE_INFORMATION>
</GET_EMBEDDED_HEALTH_DATA>
</RIBCL>
</HEAD>
"@
预期输出:在数组中
iLO= 2015 年 12 月 2 日 2.40
系统 ROM= I31 06/01/2015
冗余系统 ROM= I31 04/01/2015
智能配置= 1.62.31
智能平台抽象数据= 1.55
系统 ROM 引导块 = 41338
电源管理控制器固件= 3.3
电源管理控制器固件 Bootloader= 2.7
系统可编程逻辑设备 = 版本 0x13
服务器平台服务 (SPS) 固件= 2.1.7.E7.4
智能阵列 P220i 控制器 = 6.68
HP FlexFabric 10Gb 2 端口 554FLB 适配器= 10.5.155.0
【问题讨论】:
-
问题已回答,我不知道如何关闭线程,可以管理员帮助我。
标签: arrays xml powershell xml-parsing