【发布时间】:2009-08-03 06:33:57
【问题描述】:
我的 iLO HP 服务器生成了以下 XML 文件, 你有我如何解析它的任何例子吗?请参阅下面的示例 XML 文件。 我想从中提取风扇速度和温度。
<?xml version="1.0"?>
<GET_EMBEDDED_HEALTH_DATA>
<FANS>
<FAN>
<LABEL VALUE = "Fan 1"/>
<ZONE VALUE = "System"/>
<STATUS VALUE = "Ok"/>
<SPEED VALUE = "81" UNIT="Percentage"/>
</FAN>
<FAN>
<LABEL VALUE = "Fan 2"/>
<ZONE VALUE = "System"/>
<STATUS VALUE = "Not Installed"/>
<SPEED VALUE = "n/a" UNIT="n/a"/>
</FAN>
<FAN>
<LABEL VALUE = "Fan 3"/>
<ZONE VALUE = "System"/>
<STATUS VALUE = "Ok"/>
<SPEED VALUE = "81" UNIT="Percentage"/>
</FAN>
<FAN>
<LABEL VALUE = "Fan 4"/>
<ZONE VALUE = "System"/>
<STATUS VALUE = "Not Installed"/>
<SPEED VALUE = "n/a" UNIT="n/a"/>
</FAN>
<FAN>
<LABEL VALUE = "Fan 5"/>
<ZONE VALUE = "CPU 1"/>
<STATUS VALUE = "Ok"/>
<SPEED VALUE = "81" UNIT="Percentage"/>
</FAN>
<FAN>
<LABEL VALUE = "Fan 6"/>
<ZONE VALUE = "CPU 2"/>
<STATUS VALUE = "Not Installed"/>
<SPEED VALUE = "n/a" UNIT="n/a"/>
</FAN>
</FANS>
<TEMPERATURE>
<TEMP>
<LABEL VALUE = "Temp 1"/>
<LOCATION VALUE = "Ambient"/>
<STATUS VALUE = "Ok"/>
<CURRENTREADING VALUE = "32" UNIT="Celsius"/>
<CAUTION VALUE = "40" UNIT="Celsius"/>
<CRITICAL VALUE = "45" UNIT="Celsius"/>
</TEMP>
<TEMP>
<LABEL VALUE = "Temp 2"/>
<LOCATION VALUE = "Memory"/>
<STATUS VALUE = "Ok"/>
<CURRENTREADING VALUE = "48" UNIT="Celsius"/>
<CAUTION VALUE = "110" UNIT="Celsius"/>
<CRITICAL VALUE = "120" UNIT="Celsius"/>
</TEMP>
<TEMP>
<LABEL VALUE = "Temp 3"/>
<LOCATION VALUE = "CPU 1"/>
<STATUS VALUE = "Ok"/>
<CURRENTREADING VALUE = "30" UNIT="Celsius"/>
<CAUTION VALUE = "100" UNIT="Celsius"/>
<CRITICAL VALUE = "100" UNIT="Celsius"/>
</TEMP>
<TEMP>
<LABEL VALUE = "Temp 4"/>
<LOCATION VALUE = "CPU 1"/>
<STATUS VALUE = "Ok"/>
<CURRENTREADING VALUE = "30" UNIT="Celsius"/>
<CAUTION VALUE = "100" UNIT="Celsius"/>
<CRITICAL VALUE = "100" UNIT="Celsius"/>
</TEMP>
<TEMP>
<LABEL VALUE = "Temp 5"/>
<LOCATION VALUE = "I/O Board"/>
<STATUS VALUE = "Ok"/>
<CURRENTREADING VALUE = "46" UNIT="Celsius"/>
<CAUTION VALUE = "63" UNIT="Celsius"/>
<CRITICAL VALUE = "68" UNIT="Celsius"/>
</TEMP>
<TEMP>
<LABEL VALUE = "Temp 6"/>
<LOCATION VALUE = "CPU 2"/>
<STATUS VALUE = "n/a"/>
<CURRENTREADING VALUE = "n/a" UNIT="n/a"/>
<CAUTION VALUE = "100" UNIT="Celsius"/>
<CRITICAL VALUE = "100" UNIT="Celsius"/>
</TEMP>
<TEMP>
<LABEL VALUE = "Temp 7"/>
<LOCATION VALUE = "CPU 2"/>
<STATUS VALUE = "n/a"/>
<CURRENTREADING VALUE = "n/a" UNIT="n/a"/>
<CAUTION VALUE = "100" UNIT="Celsius"/>
<CRITICAL VALUE = "100" UNIT="Celsius"/>
</TEMP>
</TEMPERATURE>
【问题讨论】:
-
这不是有效的 XML,这是它真正返回的吗?如果是这样,请不要使用严格的解析器,因为这将是一个问题。来自 xmllint:解析器错误:标记 GET_EMBEDDED_HEALTH_DATA 第 2 行中的数据过早结束
-
-1 根据您下面的 cmets,很明显您有安装问题,而不是解析问题。删除这个问题并开始另一个问题。