如何将Invoke RestMethod的响应转换为XML?

如何将Invoke RestMethod的响应转换为XML?,xml,powershell,rest,read-eval-print-loop,invoke-restmethod,Xml,Powershell,Rest,Read Eval Print Loop,Invoke Restmethod,正在为“调用RestMethod”引用文件: 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

正在为“调用RestMethod”引用文件:

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                   
 

如何将响应转换为xml并像上面那样在一行中输出?

您所针对的特定URI返回xml内容,在本例中,它会自动解析为此类实例数组类型的xml DOM

可视化输出的一种简单方法是访问.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'
只是一个小小的变体:

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。还是很有趣