Я пытаюсь преобразовать строку в 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: выражение должно оцениваться как набор узлов"