Мне нужно получить значение элемента «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');
?>
Я получаю пустое значение для $ респ всегда.
Ваш 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];
выход :
meetingURL
Не может предложить никаких указаний с 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;