У меня есть ответ webdav PROPFIND xml, который я получаю от OwnCloud. Мне нужно преобразовать в объект PHP (и, в конечном итоге, JSON). Проблема заключается в том, что ответ является тяжелым для пространств имен, которые, очевидно, не очень хорошо справляется с симплексной библиотекой php.
Вот как выглядит XML:
<?xml version="1.0" encoding="utf-8"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:oc="http://owncloud.org/ns">
<d:response>
<d:href>/owncloud/remote.php/webdav/ownCloudUserManual.pdf</d:href>
<d:propstat>
<d:prop>
<d:getlastmodified>Sun, 04 Oct 2015 18:01:18 GMT</d:getlastmodified>
<d:getcontentlength>2241884</d:getcontentlength>
<d:resourcetype/>
<d:getetag>"b00009ac4b1b17c45667abd2a6d2f7c7"</d:getetag>
<d:getcontenttype>application/pdf</d:getcontenttype>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
</d:multistatus>
Когда я делаю это через simplexml, я ничего не получаю обратно:
$xml = simplexml_load_string($xml);
print_r( $xml );
Print_r дает:
SimpleXMLElement Object
(
)
{}
Кажется, что нет никаких симплексных ошибок (как возвращено из libxml_get_errors ()) — просто ничего не возвращается, кроме пустого класса.
Я мог бы использовать несколько советов о том, как разобрать XML в что-то полезно. Спасибо за любую помощь.
Задача ещё не решена.
Других решений пока нет …