如何使用PowerShell枚举XML元素的所有属性
你可以将问号位置替换为 Attributes | Where-Object Name -like 'Stuff*',完整调用写法如下:
$xmldata.XMLFile.Thing.ForEach({$_.Attributes | Where-Object Name -like 'Stuff*'})
说明
$_.Attributes是PowerShell中XML元素节点自带的属性集合,包含了当前节点所有已声明的属性对象- 后续的筛选条件
Name -like 'Stuff*'会匹配所有名称以Stuff开头的属性,自动适配不同Thing节点上数量不一致的Stuff属性
扩展用法
如果只需要提取所有Stuff属性的名称列表:
$xmldata.XMLFile.Thing.ForEach({$_.Attributes | Where-Object Name -like 'Stuff*' | Select-Object -ExpandProperty Name})
如果需要同时获取每个Stuff属性的名称和对应值:
$xmldata.XMLFile.Thing.ForEach({ $_.Attributes | Where-Object Name -like 'Stuff*' | ForEach-Object { [PSCustomObject]@{ 属性名 = $_.Name 属性值 = $_.Value } } })
内容的提问来源于stack exchange,提问作者dstroupe
相关产品推荐
相关产品推荐

