xml - 用 2 "values"解析 XML

标签 xml powershell

我尝试从这样的 XML 中选择一个值

<article>
  <attachments/>
  <technical>
    <feature classification="ETIM 5.0" code="EF000889" language="pl" value="EV000074">
      <name>Some name</name>
      <value>1234</value>
    </feature>
    <feature classification="ETIM 5.0" code="EF000881" language="pl">
      <name>Some name</name>
      <value>345</value>
      <unit>A</unit>
    </feature>
  </technical>
</article>

我在 powershell 中写道:

[xml]$p = Invoke-WebRequest -Uri 'https://domain.tld/file.xml'
$p.article.technical.feature | select code, value, unit

这项工作几乎是完美的,但是当一个特征有它自己的值(value)时,我得到的数组如下:

code         value              unit
EF000889     {EV000074, 1234}          
EF000881     345                A

有人知道如何获得第二个值吗?

最佳答案

这对你有用吗?

$p.article.technical.feature |%{ 
    if ($_.value.gettype().fullname -eq "System.Object[]"){$_.value[1]}          
    else{$_.value}
 } 

关于xml - 用 2 "values"解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31675910/

相关文章:

xml - XML XPath 1.0-如何在XPath表达式中正确使用'not'函数

java - 存在 @XmlRootElement 注释时无法编码(marshal) Java 类

xml - 用多个带前缀的 namespace 构造XML信封

java - 为什么 "can' 找不到 android.support.design.widget.TextInputLayout”?

powershell - 使用 powershell AzureVM 将列添加到 CSV 文件

c# - 从 C# 主机运行 Get-Service

python - 将 json 文本作为命令行参数传递

regex - 在 Mac 上用 sed 替换 XML 属性

regex - 正则表达式将日期格式从 dd-mon-yy 转换为 dd/MM/yy

PowerShell 跳过 Get-Volume