【问题标题】:How to parse XML in Powershell with Select-Xml and Xpath?如何使用 Select-Xml 和 Xpath 在 Powershell 中解析 XML?
【发布时间】:2021-03-21 20:41:57
【问题描述】:

此示例的明显输出将是日期和时间。


在迭代xml 文档的context 中,如何正确地将这个文档或converted 转换为xmlPowershell dotnet core on Linux

PS /home/nicholas/flwor> 
PS /home/nicholas/flwor> Select-Xml -Xml (Get-Date | ConvertTo-Xml) -XPath "/Objects/Object"

Node   Path        Pattern
----   ----        -------
Object InputStream /Objects/Object

PS /home/nicholas/flwor> 
PS /home/nicholas/flwor> (Get-Date | ConvertTo-Xml).OuterXml                                
<?xml version="1.0" encoding="utf-8"?><Objects><Object Type="System.DateTime">12/10/2020 5:12:45 AM</Object></Objects>
PS /home/nicholas/flwor> 

用最简单的例子进行了更新。

所以,这个例子是xml 但是:它是如何用 xpath 解析或查询的?

IRC 中给出的替代解决方案:

PS /home/nicholas/flwor> 
PS /home/nicholas/flwor> $date.SelectSingleNode('/Objects/Object').'#text'
12/10/2020 5:07:04 AM
PS /home/nicholas/flwor> 

毫无疑问,Select-XmlXpath 可以做到这一点。

【问题讨论】:

  • 使用引号:$serviceStatePath = './serviceState.xml' 或使用命名 (-Path) 参数。

标签: linux xml powershell .net-core parsexml


【解决方案1】:

如果尴尬,这可行:

PS /home/nicholas/flwor> 
PS /home/nicholas/flwor> Select-Xml -Xml (Get-Date | ConvertTo-Xml) -XPath "/Objects/Object" |  Select-Object -ExpandProperty Node

Type            #text
----            -----
System.DateTime 12/10/2020 5:23:39 AM

PS /home/nicholas/flwor> 

帮助文件有一个类似的例子。

【讨论】:

  • 直接返回日期值:(Get-Date | ConvertTo-Xml | Select-Xml "/Objects/Object").Node.InnerText
猜你喜欢
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2013-11-25
相关资源
最近更新 更多