PowerShell: вызов службы REST и запись на хост - PullRequest
0 голосов
/ 01 октября 2018

@ Nas было очень полезно написать ответ для меня здесь , но, к сожалению, я не могу запросить свой сервер и написать в терминал XML-ответ моего вызова:

$body = @{
 "UserSessionId"="12345678"
 "OptionalEmail"="MyEmail"
} | ConvertTo-Json

$header = @{
 "Accept"="application/json"
 "connectapitoken"="97fe6ab5b1a640909551e36a071ce9ed"
 "Content-Type"="application/json"
} 

$Url = "http://MyServer/WSVistaWebClient/RESTLoyalty.svc/member/search"

$XMLObject = Invoke-RestMethod -Method 'POST' -Uri $url -Headers $header -Body $body     

Write-Host "First try"
$XMLObject.location     #-> readable

Write-Host "Second try"
$XMLObject.InnerXml    #-> like postman output

Write-Host "Third try"
$XMLObject

enter image description here

не знаю, почему я могу напечатать необработанный XML, полученный в ответ на вызов, но не могу отформатировать его.

Но поток данных - неверностьесть

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

ArcSet дал вам краткий ответ, для уровня узла, о котором вы говорите, что пытаетесь сослаться, но, к вашему сведению, это все о базовом анализе XML с использованием PowerShell.

PS имеет командлеты XML ...

Get-Command -Name '*xml*' | Format-Table -AutoSize

CommandType Name                      Version Source                      
----------- ----                      ------- ------                      
...          
Cmdlet      ConvertTo-Xml             3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet      Convert-XMLtoJSON         5.0.0.1 Sorlov.PowerShell           
Cmdlet      Export-Clixml             3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet      Import-Clixml             3.1.0.0 Microsoft.PowerShell.Utility
Cmdlet      Merge-XMLFile             5.0.0.1 Sorlov.PowerShell           
Cmdlet      New-XSDfromXML            5.0.0.1 Sorlov.PowerShell           
Cmdlet      Select-Xml                3.1.0.0 Microsoft.PowerShell.Utility

... специально для этого, или вы можете использовать пространство имен .NET xml для его анализа.На эту тему есть множество документов, электронных книг и видео.XML и JSON очень важны для PS.

Проще говоря, PowerShell: анализ XML

Освоение повседневных задач XML в PowerShell

Например, используя пространство имен .Net xml, измените это ...

$XMLObject = Invoke-RestMethod -Method 'POST' -Uri $url -Headers $header -Body $body

... чтобы сказать это ...

[xml]$XMLObject = Invoke-RestMethod -Method 'POST' -Uri $url -Headers $header -Body $body 

... ТогдаПри необходимости выполните синтаксический анализ.

$XMLObject.Object

Например (поскольку я не могу использовать то, что у вас есть на самом деле):

# download currency exchange rates in XML format and parse for currency rates:

$url = 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'
[xml]$result = (Invoke-WebRequest -Uri $url -UseBasicParsing).Content

$result

xml                            Envelope
---                            --------
version="1.0" encoding="UTF-8" Envelope


$result.Envelope

gesmes  : http://www.gesmes.org/xml/2002-08-01
xmlns   : http://www.ecb.int/vocabulary/2002-08-01/eurofxref
subject : Reference rates
Sender  : Sender
Cube    : Cube


$result.Envelope.Cube

Cube
----
Cube


$result.Envelope.Cube.Cube

time       Cube                                                                                                                                                                                      
----       ----                                                                                                                                                                                      
2018-09-28 {Cube, Cube, ...



$result.Envelope.Cube.Cube.Cube

currency rate    
-------- ----    
USD      1.1576  
JPY      131.23  
BGN      1.9558  
...
0 голосов
/ 01 октября 2018

Выглядит так, как будто вы хотите приобрести LoyaltyXML.

$XMLObject.LoyaltyXML
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...