Я использую API от GitHub для интеграции с SharePoint через PHP.
http://github.com/thybag/PHP-SharePoint-Lists-API
Это хорошо работает, кроме одного списка. В рассматриваемом списке много файлов, один из которых использует специальный символ &# 18
Читая некоторые ресурсы в Интернете, может показаться, что веб-сервисы .NET не проверяют эти символы — дословно из другого источника
По причинам обратной совместимости .NET веб-сервисы не поддерживают XML 1.1, что позволяет использовать эти символы, как описано в следующей статье:
Подпрограммы заглушки (сервера) веб-службы, реализованные в .NET Framework, не заботятся о недопустимых символах при кодировании ответа XML. Они кодируют недопустимые символы в виде числовых ссылок, например? для вертикальной вкладки чар. Проблема возникает в процедурах прокси (клиента) веб-службы. Они вызывают исключение, когда возвращается объект, который не разрешен в XML 1.0:
PHP Sharepoint API использует мыльный клиент PHP для вызова API SharePoint для получения информации. Однако, если он находит ошибку, такую как символ &# 18 в ответ он просто игнорирует это и бросает исключение.
Немного взломав код API, я получил XML, который он возвращает, с помощью __getLastResponse () и могу увидеть символ в строке:
wic_YResolution:DW|72.0000000000000 _Comments:SW|ø; wic_System_ApplicationName
Очевидно, я мог бы добавить специальный случай и вернуть этот XML, а не красивый объект Soap, и проанализировать его по-разному, но я хотел бы знать, есть ли способ сказать клиенту Soap, что он все равно анализирует ответ, игнорирует недопустимые символы и верните мне хороший ответ, как и во всем остальном.
Любая помощь будет оценена.
Благодарю.
Задача ещё не решена.
Других решений пока нет …