2015-11-12 3 views
1

У меня есть ответ на мыло xml, и мне нужен SessionID. Я попытался использовать SimpleXml_load_string, но получил пустой объект. Кто-нибудь знает, как получить SessionID?Как получить SessionID из soap: header?

Это ответ XML:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Header> 
    <Header xmlns="http://www.twinfield.com/"> 
     <SessionID>ca363c52-c12f-4988-b06a-e0c41788e254</SessionID> 
    </Header> 
</soap:Header> 
<soap:Body> 
    <LogonResponse xmlns="http://www.twinfield.com/"> 
     <LogonResult>Ok</LogonResult> 
     <nextAction>None</nextAction> 
     <cluster>https://c3.twinfield.com</cluster> 
    </LogonResponse> 
</soap:Body> 
</soap:Envelope> 

ответ

0

Попробуйте с помощью DOM. Это один из способов:

$s = '<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Header> 
    <Header xmlns="http://www.twinfield.com/"> 
     <SessionID>ca363c52-c12f-4988-b06a-e0c41788e254</SessionID> 
    </Header> 
</soap:Header> 
<soap:Body> 
    <LogonResponse xmlns="http://www.twinfield.com/"> 
     <LogonResult>Ok</LogonResult> 
     <nextAction>None</nextAction> 
     <cluster>https://c3.twinfield.com</cluster> 
    </LogonResponse> 
</soap:Body> 
</soap:Envelope>'; 

$doc = new DOMDocument(); 
$doc->loadXML($s); 
echo $doc->getElementsByTagName('SessionID')->item(0)->nodeValue; 
Смежные вопросы