2012-07-25 4 views
0

Я потратил уже несколько часов, пытаясь найти встроенную функцию для этого, но я не получил никаких результатов.Вставить ответ XML SOAP в базу данных

Есть ли у кого-нибудь опыт в том, как анализировать весь ответ данных из XML-запроса SOAP в базу данных?

Что я ищу, это встроенная функция PHP для этого, есть ли функция для этого? Или мне нужно сделать это самим?

+1

Вы хотите сбросить необработанный XML-ответ SOAP или что вы подразумеваете под «анализом всего ответа на данные»? – mellamokb

+0

Да, я хочу преобразовать SOAP-ответ на вставку в базу данных – thegrede

ответ

0

Хотя я не понимаю, почему кто-то действительно хотел бы сделать такое, вы можете сделать это на extending the SoapClient class. Теперь все, что вам нужно сделать, это получить XML-строку, предоставленную ответом, и делать с ней все, что вам нужно.

PS: Если вы установили флаг 'trace' => TRUE, вы можете просто позвонить $client->__getLastRequest(), как описано here, без необходимости продления класса SoapClient.

+0

Моя цель, когда я получил ответ SOAP, я хочу сохранить ответ в базе данных, чтобы вместо этого получить все данные manuelly и поиграть с ним. хотите сделать это со встроенной функцией, если это возможно, например, когда вы импортируете XML-файл в базу данных SQL. Спасибо за то, что вы ответили в любом случае. – thegrede

+0

Итак, вы хотите сохранить все листовые узлы XML-файла в базе данных? Давайте посмотрим ... Как это будет работать в общем? Я имею в виду, что XML может иметь узлы в узлах в узлах в ... Таблицы базы данных обычно являются статическими. Что произойдет, если XML изменится? Кто отвечает за изменение структуры БД по мере необходимости? Должна ли структура БД адаптироваться к изменениям структуры XML? Что произойдет, если в ответе XML опускает определенные узлы для некоторых запросов SOAP (min_occurs = "0")? Должны ли мы заполнять соответствующие ячейки таблицы с помощью NULL? –

+0

Хотя вы могли бы выбрать сложную структуру EAV DB, я с трудом думаю об общем способе, в котором вы могли бы реализовать механизм, который отражает в DB любые структурные изменения в XML. В лучшем случае вы можете обрабатывать структурные изменения XML вручную в БД, если они произойдут, но вам все равно придется иметь дело с ошибками типа данных и всеми видами угловых случаев. Сказав это, если XML имеет сложную структуру, возможно, вы можете автоматически преобразовать свою схему XSD в таблицы DB с помощью некоторого инструмента, но вам все равно придется написать какой-то общий код, который проходит через XML и сохраняет его. –

Смежные вопросы