xml - Powershell XML文件到 TableView

标签 xml powershell format

在我们的远程管理系统中,我们可以执行HPiLOcmdlet来从HP服务器中的iLO硬件管理卡中检索数据。

例:

$tempstatus = Get-HPiLOTemperature -Server $server -Username $Username -Password $Password -Output XML

这将生成一个XML文件,我想将其用作Powershell中的表的输入和输出

输入XML:
<?xml version="1.0" encoding="UTF-8"?>
<RIBCL VERSION="2.23">
   <TEMPERATURE>
      <TEMP>
         <LABEL VALUE="01-Inlet Ambient" />
         <LOCATION VALUE="Ambient" />
         <STATUS VALUE="0K" />
         <CURRENTREADING VALUE="23" UNIT="Celsius" />
         <CAUTION VALUE="42" UNIT="Celsius" />
         <CRITICAL VALUE="46" UNIT="Celsius" />
      </TEMP>
      <TEMP>
         <LABEL VALUE="02-CPU 1" />
         <LOCATION VALUE="CPU" />
         <STATUS VALUE="0K" />
         <CURRENTREADING VALUE="40" UNIT="Celsius" />
         <CAUTION VALUE="70" UNIT="Celsius" />
         <CRITICAL VALUE="N/A" />
      </TEMP>
      <TEMP>
         <LABEL VALUE="03-CPU 2" />
         <LOCATION VALUE="CPU" />
         <STATUS VALUE="0K" />
         <CURRENTREADING VALUE="49" UNIT="Celsius" />
         <CAUTION VALUE="70" UNIT="Celsius" />
         <CRITICAL VALUE="N/A" />
      </TEMP>
   </TEMPERATURE>
</RIBCL>

到目前为止,我尝试了:
[xml]$XmlDocument = get-content test.xml
$XmlDocument.RIBCL.TEMPERATURE.ChildNodes | Format-Table

结果:

xml

想要的输出:

xml

谢谢你的帮助 !!!

最佳答案

我没有在表中得到文本“celsius”(因为这些列的处理方式不同,但是这里有一些代码可以按照您想要的方式拆分xml。它只是使用值创建新对象

[xml]$XmlDocument = get-content test.xml
$XmlDocument.RIBCL.Temperature.TEMP | foreach-object {
    $obj=[ordered]@{}
    foreach($node in $_.ChildNodes){
       $obj[$node.Name]=($node.Value+ " " + $node.Unit).Trim()
    }
    write-output ([pscustomobject]$obj)
  } | format-table 

关于xml - Powershell XML文件到 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50845939/

相关文章:

javascript - 无法使用 jquery parseXML 附加 XML 节点,但可以附加字体

mysql - 读取大转储文件

windows - 在dockerfile中多次切换转义字符

javascript - karma/jasmine console 更详细的测试结果

java - 如何格式化字符串数字以在 android Edit Field 中使用逗号

java - 在Android中创建 "popup"侧边菜单

android - 在 TabActivity 内的 ListView 上使用 OnItemClickListener

sql-server - osql vs Invoke-Sqlcmd-重定向后者的输出

powershell - 如何将文件从 DOS 转换为 Unix

Oracle:将数字解析为 9,99 格式的优雅方法