Как преобразовать ответ Invoke-RestMethod в XML?
Ссылка на файл справки для `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
и вывести его, как указано выше, в одну строку?
3 ответа
Решение
Конкретный целевой URI-адрес возвращает XML- контент, который Invoke-RestMethod
автоматически разбирается в XML DOM типа System.Xml.XmlElement
(в данном случае - массив таких экземпляров).
Простой способ визуализировать вывод - получить доступ к
.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'
[xml]$testResult = (Invoke-RestMethod -Uri 'url').OuterXml$testResult.Details.Status
Если xml равно 3
Небольшой вариант:
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
по крайней мере, как напечатано на консоли. Тем не менее, интересно.