【问题标题】:How to convert a response from Invoke-RestMethod to XML?如何将响应从 Invoke-RestMethod 转换为 XML?
【发布时间】:2021-03-01 06:10:04
【问题描述】:

为 `Invoke-RestMethod: 引用 help 文件:

PS /home/nicholas> 
PS /home/nicholas> $response = Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/ 
PS /home/nicholas> 
PS /home/nicholas> $json = $response | ConvertTo-Json                                                   
WARNING: Resulting JSON is truncated as serialization has exceeded the set depth of 2.
PS /home/nicholas> 
PS /home/nicholas> $xml = $response | ConvertTo-Xml  
PS /home/nicholas> 
PS /home/nicholas> $xml.OuterXml                   
 

如何将response 转换为xml 并如上所述在一行中输出?

【问题讨论】:

    标签: xml powershell rest read-eval-print-loop invoke-restmethod


    【解决方案1】:

    您要定位的特定 URI 返回 XML 内容,Invoke-RestMethod 会自动将其解析为 System.Xml.XmlElement 类型的 XML DOM(此实例中的 array案例)。

    可视化输出的一种简单方法是访问.OuterXml 属性:

    (Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/).OuterXml
    

    如果你真的需要单行表示:

    (Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/).OuterXml -replace '\r?\n'
    

    【讨论】:

      【解决方案2】:

      只是一个轻微的变体:

      PS /home/nicholas> 
      PS /home/nicholas> $url="https://blogs.msdn.microsoft.com/powershell/feed/"                            
      PS /home/nicholas> 
      PS /home/nicholas> Invoke-RestMethod -Method Post -Uri $url -Body $body -ContentType 'application/xml'
      

      尽管指定了“ContentType”,但它肯定似乎不是XML,至少打印到控制台上。不过,很有趣。

      【讨论】:

        【解决方案3】:

        [xml]$testResult = (Invoke-RestMethod -Uri 'url').OuterXml $testResult.Details.Status

        如果 xml 是 3

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-01
          • 2020-10-14
          • 1970-01-01
          • 2020-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多