Sit*_*thi 7 .net powershell powershell-2.0
我的一个应用程序是生成以下XML文件.
<root>
<command name="Set">
<property name="PWR.WakeupOnLAN" value="6" errorcode="0x0"/>
</command>
<command name="Set">
</command>
<command name="biossettings">
<property name="task" value="Succeeded." errorcode="0x0"/>
</command>
</root>
Run Code Online (Sandbox Code Playgroud)
我有兴趣阅读"PWR.WakeupOnLAN"属性名称的值和错误代码.在发布之前,我尝试了各种各样的东西,但在PowerShell中找不到正确的代码来读取属性.任何人都可以帮助我使用PowerShell代码吗?
Enr*_*lio 12
在PowerShell 2.0中,您可以使用新的Select-Xml cmdlet和XPath表达式解决此问题:
[xml]$document = "<root><command name='Set'><property name='PWR.WakeupOnLAN' value='6' errorcode='0x0'/></command><command name='Set'></command><command name='biossettings'><property name='task' value='Succeeded.' errorcode='0x0'/></command>"
$value = (Select-Xml -Xpath "//property[@name='PWR.WakeupOnLAN']/@value" $document).Node.Value
$errorCode = (Select-Xml -Xpath "//property[@name='PWR.WakeupOnLAN']/@errorcode" $document).Node.Value
Run Code Online (Sandbox Code Playgroud)
相关资源:
@Enrico Campidoglio给出了"最干净"的解决方案,这是一种古老的时尚.
PS> $xml = [XML](get-content c:\temp\yourfile.xml)
PS> $errcode = ($xml.root.command | where {$_.property.name -eq "PWR.WakeupOnLAN" }).property.errorcode
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1861 次 |
| 最近记录: |