Получить значение из объекта XML?

Мне нужно получить значение элемента «joinmeetingurl» из XML. Я пытался следующим образом. Но это ничего не возвращает. Пожалуйста, помогите мне получить значение.

<?php

$xml = '<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service"xmlns:com="http://www.webex.com/schemas/2002/06/common"xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting"xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbstatus>PRIMARY</serv:gsbstatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodycontent xsi:type="meet:getjoinurlMeetingResponse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<meet:joinmeetingurl>meetingURL</meet:joinmeetingurl>
</serv:bodycontent>
</serv:body>
</serv:message>';

$xml = simplexml_load_string($xml);
$items = $xml->registerXPathNamespace('meet','http://www.webex.com/schemas/2002/06/service/meeting');

$resp = $xml->xpath('//meet:joinmeetingurl');

?>

Я получаю пустое значение для $ респ всегда.

1

Решение

Ваш XPath должен был сработать, и вы можете привести элемент к string чтобы получить значение, например:

$xml = <<<XML
<serv:message xmlns:serv="http://www.webex.com/schemas/2002/06/service"xmlns:com="http://www.webex.com/schemas/2002/06/common"xmlns:meet="http://www.webex.com/schemas/2002/06/service/meeting"xmlns:att="http://www.webex.com/schemas/2002/06/service/attendee">
<serv:header>
<serv:response>
<serv:result>SUCCESS</serv:result>
<serv:gsbstatus>PRIMARY</serv:gsbstatus>
</serv:response>
</serv:header>
<serv:body>
<serv:bodycontent xsi:type="meet:getjoinurlMeetingResponse"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<meet:joinmeetingurl>meetingURL</meet:joinmeetingurl>
</serv:bodycontent>
</serv:body>
</serv:message>
XML;

$xml = simplexml_load_string($xml);
$xml->registerXPathNamespace('meet','http://www.webex.com/schemas/2002/06/service/meeting');
$resp = $xml->xpath('//meet:joinmeetingurl');
echo (string)$resp[0];

eval.in demo

выход :

meetingURL
1

Другие решения

Не может предложить никаких указаний с simplexml и связанные функции, но это кажется довольно простым со стандартным DOMDocument а также DOMXPath

$dom=new DOMDocument;
$dom->loadXML( $xml );

$xpath=new DOMXPath( $dom );
$col=$xpath->query('//meet:joinmeetingurl');
foreach( $col as $node )echo $node->nodeValue;
$dom=null;
0

По вопросам рекламы [email protected]