首页 > 解决方案 > Powershell如何检查xml对象中的文本内容是否为空

问题描述

使用这样的 xml:

<parent>
   <child1>my value</child1>
   <child2></child2>
</parent>

我需要检查子节点内容是否不为空。这是我的代码:

[xml]$xml = Get-Content my.xml
$xml.SelectNodes('//parent/*') | ForEach-Object {        
    if ($_) {
        Write-Host $_.name
    }
}

预期的输出是

child1

相反,我得到了两个:

child1
child2

我应该如何更改 if 行?

谢谢。

标签: xmlpowershell

解决方案


尝试改变

$xml.SelectNodes('//parent/*') 

$xml.SelectNodes('//parent/*[text()]')

看看它是否有效。


推荐阅读