【问题标题】:How to print actual contents of xml elements in powershell?如何在powershell中打印xml元素的实际内容?
【发布时间】:2017-08-03 15:54:15
【问题描述】:

当尝试使用 powershell 解析 xml 文件中的各种数据时,能够查看各种元素实际上是什么,对于调试等很有用。所以如果我有这样的事情:

[xml]$xmldoc = Get-Content doc.xml
$node = $xmldoc.SelectSingleNode("contents/some/path/items/item[name='itemname']")
$items = $xmldoc.contents.some.path.items

write-host "items = [${items}], node = [${node}]"

我希望能够看到 $items 和 $node 的内容,但我得到的只是 System.Xml.XmlDocument 或 System.Xml.XmlElement。当我尝试使用 items.Value 或 items.InnerText 时,它们显示为空,那么如何打印这些元素的实际文本?

【问题讨论】:

    标签: xml powershell xml-parsing


    【解决方案1】:

    查看the XmlElement class。具体来说,属性。我怀疑你在关注.InnerXml.OuterXml

    【讨论】:

    • 我得到了所有这些的空返回,甚至 ${node.IsEmpty} 返回一个空值......或者我打印它们不正确?我一点也不了解powershell。
    • 尝试使用子表达式:Write-Output "$($items.OuterXml) $($node.OuterXml)"
    • 好的,这似乎可行,有没有使用 ${} vs $() 等的指南?
    • ${} 是有界变量,$() 是子表达式。 $var 与 ${var} 相同
    猜你喜欢
    • 2021-03-23
    • 2011-07-18
    • 1970-01-01
    • 2023-01-12
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多