相关疑难解决方法(0)

如何在Powershell中迭代XML?

我在文本文件中有这个XML文档:

<?xml version="1.0"?>
<Objects>
  <Object Type="System.Management.Automation.PSCustomObject">
    <Property Name="DisplayName" Type="System.String">SQL Server (MSSQLSERVER)</Property>
    <Property Name="ServiceState" Type="Microsoft.SqlServer.Management.Smo.Wmi.ServiceState">Running</Property>
  </Object>
  <Object Type="System.Management.Automation.PSCustomObject">
    <Property Name="DisplayName" Type="System.String">SQL Server Agent (MSSQLSERVER)</Property>
    <Property Name="ServiceState" Type="Microsoft.SqlServer.Management.Smo.Wmi.ServiceState">Stopped</Property>
  </Object>
</Objects>
Run Code Online (Sandbox Code Playgroud)

我想迭代每个对象并找到DisplayNameServiceState.我该怎么办?我尝试了各种组合,并努力解决这个问题.

我这样做是为了将XML转换为变量:

[xml]$priorServiceStates = Get-Content $serviceStatePath;

$serviceStatePath上面显示的xml文件名在哪里.然后我想我可以这样做:

foreach ($obj in $priorServiceStates.Objects.Object)
{
    if($obj.ServiceState -eq "Running")
    {
        $obj.DisplayName;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望输出一个字符串 SQL Server (MSSQLSERVER)

xml powershell

33
推荐指数
1
解决办法
9万
查看次数

标签 统计

powershell ×1

xml ×1