Преобразование строки из ответа API в XML - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь преобразовать строку в XML и затем проанализировать указанный c узел "alerts/action". Однако я не могу получить доступ к узлам.

Я попробовал следующее без какой-либо удачи. Любая помощь будет принята с благодарностью.

XML Пример

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<alerts appliance="thing1" version="1234569" msg="concise" xmlns="http://server.com/info/2001/AlertSchema">
    <ns2:alert appliance-id="654654" id="296385" name="imatch" severity="mr" uuid="987897-2c21-4a5f-85dc-asdfasdf" ackd="yes" product="S" vlan="0" mali="yes" sc-version="999">
        <ns2:explanation>
            <ns2:m-detected>
                <ns2:ma name="URL"/>
            </ns2:m-detected>
        </ns2:explanation>
        <ns2:src>
            <ns2:ip>1.2.3.2</ns2:ip>
            <ns2:port>51</ns2:port>
        </ns2:src>
        <ns2:alert-url>https://server.com/e/event?id=385</ns2:alert>
        <ns2:action>blocked</ns2:action>
        <ns2:occurred>2020-02-25T20:34:07.713-06:00</ns2:oc>
        <ns2:dst>
            <ns2:mac>654a654asdf</ns2:mac>
            <ns2:port>80</ns2:port>
            <ns2:ip>123.321.321.1</ns2:ip>
        </ns2:dst>
    </ns2:alert>
</alerts>

Powershell

$XMLContent = $AlertResponse.Content | ConvertTo-Xml

$xml = New-Object -TypeName System.Xml.XmlDocument
$xml.LoadXml($AlertResponse.Content)

Когда я попробуйте вторую часть, используя "$xml.loadxml ...", я получаю следующую ошибку:

"Исключение вызывает" Load Xml "с аргументом (ами)" 1 ":" 'ns2' это необъявленный префикс. Строка 3, позиция 6. ""

Когда я пытаюсь сделать $xmlcontent.alerts ничего не возвращается. Когда я попробовал следующее, я получаю сообщение об ошибке, следуя коду:

$XMLContent | Select-Xml -XPath "/alerts"

"Select- Xml: выражение должно оцениваться как набор узлов"

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