xml - Powershell按字符串值选择节点
问题描述
我正在尝试通过另一个节点的字符串值来选择一个节点。
我的 XML 部分:
<XIP xmlns="http://prty/XIP/v6.0">
<Generation>
<Properties>
<Property>
<PUID>prp/10008</PUID>
<PropertyName>Number Of Audio Streams</PropertyName>
<Value>1</Value>
</Property>
<Property>
<PUID>prp/12</PUID>
<PropertyName>Sampling Frequency</PropertyName>
<Value>48000</Value>
</Property>
<Property>
<PUID>prp/10002</PUID>
<PropertyName>Duration</PropertyName>
<Value>2M9.686S</Value>
</Property>
<Properties>
<Generation>
</XIP>
所以,想法是通过字符串 Duration 获得 2M9.686S
$xmlDocument.XIP.Generation.Properties.Property.Value | Where-Object $xmlDocument.XIP.Generation.Properties.Property -Property PropertyName -Like ("Duration")
我正在尝试不同的方式,但不返回任何值。我究竟做错了什么?
谢谢你的帮助。
解决方案
您可以像这样导航:
$xmlDocument.XIP.Generation.Properties.Property | where {$_.PropertyName -eq "Duration"}
访问特定的属性和以下访问值,即:
($xmlDocument.XIP.Generation.Properties.Property |
where {$_.PropertyName -eq "Duration"}).value
(为了复制场景,我使用$xmlDocument = [xml](Get-Content .\test.xml)
来保存和访问 XML 内容)
推荐阅读
- cookies - 未使用 WooCommerce 4.4.1 的活动版本测试已安装版本
- r - 在 R tibble 中的特定位置提取项目
- swift - 究竟如何在后台线程上渲染 Metal?
- html - 自定义工具提示不适用于 fontawesome 图标
- javascript - 如何在交换机内部使用路由器链接
- javascript - 角色检查器机器人 - Discord.js - ReferenceError:未定义成员
- html - 允许文本换行而不允许其他元素换行?
- java - 基于页面的Birt组头
- vim - 在vim中删除直到第二个正斜杠
- wcf - 禁用 tls1.0 时调用方未通过服务身份验证