我在文本文件中有这个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)
我想迭代每个对象并找到DisplayName和ServiceState.我该怎么办?我尝试了各种组合,并努力解决这个问题.
我这样做是为了将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)