引用 help文件“Invoke-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
如何将 response
转换为 xml
并将其输出(如上所述)在一行中?
最佳答案
您定位的特定 URI 返回 XML 内容,其中 Invoke-RestMethod
自动解析为 System.Xml.XmlElement
类型的 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'
您可以使用这些 XmlElement
使用OOP技术的实例,依赖PowerShell's convenient adaptation of the XML DOM ;例如,以下内容提取 <title>
的值所有数组元素的子元素,使用 member-access enumeration :
$entries = Invoke-RestMethod -Uri https://blogs.msdn.microsoft.com/powershell/feed/
$entries.title
注意:
因为目标 URI 代表 Atom feed 中,feed 条目作为 XML 元素的数组返回,而不是作为单个 XML 文档返回。
Web 服务更常见的是返回解析为单个 XML 文档的 XML,如
[xml]
(System.Xml.XmlDocument
) 实例。
关于xml - 如何将 Invoke-RestMethod 的响应转换为 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64885215/