Я знаю, что это старый вопрос, но я никогда не мог заставить SimpleXML что-либо сделать. Учитывая, что это единственное, что появляется в поиске Google об использовании API европейского патента OFfice с PHP, я решил документировать, что сработало для меня ...
Вот как я это решил:
# build query url
$patent_url = 'http://ops.epo.org/3.0/rest-services/published-data/search/full-cycle/?q='.urlencode($your_query);
# grab the contents of $patent_url
$patent_raw = file_get_contents($patent_url);
# create an XML parser
$resource = xml_parser_create();
# parse XML into array
xml_parse_into_struct($resource, $patent_raw, $patent_array);
# close the parser - you want to do this...
xml_parser_free($resource);
Теперь у вас есть стандартный массив PHP ($patent_array
), который вы можете перебирать. Обратите внимание, что это похоже на мой код, но не совсем то же самое - вам, возможно, придется настроить его, если вы вырезаете / вставляете ... Конечно, вам все равно придется выяснить, что делать с нелепо сложным, разработанным комитетом структура данных, но, по крайней мере, в изменяемой форме.
Edit:
При попытке получить более сложные результаты выяснилось, что данные EPO не являются строгими XML. SimpleXML и приведенный выше код ничего не делают при попытке анализа результатов. Решением было использование анализатора XML DOM, который является отказоустойчивым. Код, который я использовал, описан здесь: http://set.cooki.me/archives/225/php-dom-xml-to-array