Powershell Invoke-WebRequest XML-данные - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть крупный запрос API, который я пытаюсь сделать с помощью Powershell для дальнейшей отправки в виде JSON в PowerBI. Формат XML следующий (но гораздо больший):

<queryResponse last="99" first="0" count="2" type="APD" responseType="list" requestUrl="an URL" rootUrl="root URL">
   <entity dtoType="aPDDTO" type="APD" url="URL_ID">
      <accessPointDetailsDTO displayName="ID" id="ID">
         <adminStatus>ENABLE</adminStatus>
         <apType>AP2600I</apType>
         <clientCount_5GHz>2</clientCount_5GHz>
         <status>CLEARED</status>
         <type>UnifiedAp</type>
            <cdpNeighbors>
               <cdpNeighbor>
                  <capabilities>Switch IGMP </capabilities>
                  <duplex>Full Duplex</duplex>
                  <interfaceSpeed>100Mbps</interfaceSpeed>

Я хотел бы иметь возможность отправлять не все, кроме указанных полей, в дальнейшем. У меня был цикл, который использовался ранее, когда API использовал JSON, который я пытался использовать:

while ($true) {
$AccessPointDetails = Invoke-WebRequest -Uri $Uri -Headers @{"Authorization"="Basic $BasicCreds"}
    foreach ($AccessPoint in $AccessPointDetails) {
        $payload = @{
            "adminStatus" = $AccessPoint.adminStatus
      }
        Invoke-RestMethod -Method Post -Uri "$endpoint" -Body (ConvertTo-Json @($payload))
        sleep 100
    }
}

Я не получаю никаких значений, поэтому я предполагаю, что он не знает, где находятся данные.

РЕДАКТИРОВАТЬ 1

Я нашел несколько подсказок о том, как сделать ниже, чтобы представить данные в конце моего кода:

[ xml ]$fileContents = Get-Content -Path $Result

Проблема в том, что мне не нравится моя первая строка в данных, которые я пытаюсь прочитать, так как она выдала мне эту ошибку:

Get-Content : Cannot find drive. A drive with the name '<?xml version="1.0" ?>

1 Ответ

0 голосов
/ 21 ноября 2019

Я обычно получаю контент json, записываю его в простой текстовый файл, добавляю нужные мне строки или значения и затем преобразую его в Json.

Обычно это позволяет мне избежать любых проблем

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