【发布时间】:2018-10-12 05:53:41
【问题描述】:
我有这个奇怪的输出正在生成。 $abc 是一个包含大约 200 个节点的 xml 我尝试使用主机名 cat01.pdx30 搜索特定元素,但下面似乎打印出 abc 中的所有主机名,有什么想法吗?
($abc.DeviceMetaData) | ForEach-Object {
if ($PSItem.Device.HostName -match [regex]::Escape("cat01.pdx30")) {
return $psitem.Device.HostName
}
}
$abc 看起来像这样:
<?xml version="1.0"?>
<DeviceMetaData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Device HostName="cat02.pdx30">
<Property Name="Home">Region</Property>
</Device>
<Device HostName="cat01.mwh01">
<Property Name="AclFile" />
<Property Name="AnchorPresent">False</Property>
<Property Name="CloudType">Public</Property>
<Property Name="ConfigTemplateFile">iper_Ce.xml</Property>
<Property Name="DcCode">mwh01</Property>
</Device>
<Device HostName="ALB70-RME71-226-01OSP">
<Property Name="OpticalEnabled">True</Property>
</Device>
</DeviceMetaData>
【问题讨论】:
-
能否分享一个 XML 文件的 sn-p,让我们了解它的结构?
-
请编辑您的问题并提供示例数据以供其他人查看必要的详细信息以帮助您解决问题。
-
已在主线程上更新
-
根据您的描述,您似乎正在尝试查找具有属性值的节点。请考虑查看这个现有问题:Select XML element by attribute value and add an element
标签: powershell foreach