Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 05 июл 2025, 18:28

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: xml запрос
СообщениеДобавлено: 08 ноя 2012, 17:45 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 23 июл 2012, 21:58
Сообщения: 100
Доброго времени суток.
Стоит задача, отправить и получить xml запрос.
Подскажите, что и где можно почитать.
..чего то не могу сгуглить..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xml запрос
СообщениеДобавлено: 08 ноя 2012, 20:57 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 23 июл 2012, 21:58
Сообщения: 100
Что то нагулил, но не работает.
Код:
$xml = "<lid>
   <login>leafemo</login>
   <passwd>efLJUO</passwd>
   <link_project>link_project</link_project>
   <register_date>register_date</register_date>
   <type_lid>type_lid</type_lid>
   <theme_lid>theme_lid</theme_lid>
   <referrer>referrer</referrer>
   <key_phrase>key_phrase</key_phrase>
   <phone_number>9343441497</phone_number>
   <contact_name>Roman</contact_name>
   <additional_info>Admin</additional_info>
   <properties>properties</properties>
   <receiving_number>93434234703</receiving_number>
   <duration>duration</duration>
   <class_lid>class_lid</class_lid>
   <class_lid_client>class_lid_client</class_lid_client>
   <cost_lid>cost_lid</cost_lid>
   <cost_lid_client>cost_lid_client</cost_lid_client>
   <user_lid>borodatych</user_lid>
   <link_record>link_record</link_record>
   <service>Test</service>
</lid>";
$request = Request::factory('http://test2/time.php')
        ->method(Request::POST)
        ->headers('Content-Type', 'text/xml')
        ->body($xml);
$response = $request->execute();
echo $xml.'<br>';
echo $response.'<br>';

На test2/time.php:
Код:
Код:
<?php echo $_POST['link_project']; ?>
<?php var_dump($_POST); ?>

Дает такой ответ:
Код:
array(0) { }

В Kohane вижу такую же картину.
И в Kohana echo $xml выводит мой xml без тегов. Из-за чего?

Нашел так же Kohana_XML модуль.
По wiki сделал xml, ну малоли моя кривая:
Код:
$xml = XML::factory("atom");
$xml->add_node("osearch:title", "some title", array("attribute1" => "value"));
$xml->add_node("updated", time());
$author = $xml->add_node("author");
$author->from_array(array("uri" => "3324324531", "name" => "John Smith"));
//$xml->render(TRUE);

Kohana ругается:
Цитата:
ErrorException [ Recoverable Error ]: Object of class DOMElement could not be converted to string

В общем каша в голове. Подскажите в каком направление двигаться.
С уважением, Роман.


Последний раз редактировалось borodatych 09 ноя 2012, 11:05, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xml запрос
СообщениеДобавлено: 09 ноя 2012, 02:34 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 23 июл 2012, 21:58
Сообщения: 100
В общем попробовал еще так, пока все в одном контроллере:
Цитата:
//Генерю XML
$xml = XML::factory(NULL, "lid");
$xml->add_node("osearch:title", "some title", array("attribute1" => "value"));
$xml->add_node("updated", time());
$author = $xml->add_node("author");
$author->from_array(array("uri" => "3324324531", "name" => "John Smith"));
$xml->author->add_node("firstname", "Johnnnn");
//Отправляю себе на страницу
$url='';
$request = Request::factory($url);
$request->method(Request::POST);
$request->body($xml);
$request->headers('Content-Type', 'application/xml');
$request->execute();
$body = $request->body();
//Проверяю переменную
echo $body.'<br>';
//С другой стороны
print '<pre>'; print_r($body); print '</pre>'; echo '<br>';
//Проверяю POST
if(isset($_POST)){
print '<pre>'; print_r($_POST); print '</pre>'; echo '<br>';
}

Когда проверяю:
Код:
echo $body.'<br>';

Получаю:
Цитата:
some title 1352409453 3324324531 John Smith Johnnnn

Куда теги подевались?
Когда проверяю:
Код:
print '<pre>'; print_r($body); print '</pre>';

Получаю:
Цитата:
XML Object
(
[root_node] => lid
[dom_node] => DOMElement Object
(
[tagName] => lid
[schemaTypeInfo] =>
[nodeName] => lid
[nodeValue] => some title13524094533324324531John SmithJohnnnn
[nodeType] => 1
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[attributes] => (object value omitted)
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => lid
[baseURI] =>
[textContent] => some title13524094533324324531John SmithJohnnnn
)

[dom_doc] => DOMDocument Object
(
[doctype] =>
[implementation] => (object value omitted)
[documentElement] => (object value omitted)
[actualEncoding] => utf-8
[encoding] => utf-8
[xmlEncoding] => utf-8
[standalone] => 1
[xmlStandalone] => 1
[version] => 1.0
[xmlVersion] => 1.0
[strictErrorChecking] => 1
[documentURI] =>
[config] =>
[formatOutput] => 1
[validateOnParse] =>
[resolveExternals] =>
[preserveWhiteSpace] => 1
[recover] =>
[substituteEntities] =>
[nodeName] => #document
[nodeValue] =>
[nodeType] => 9
[parentNode] =>
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[attributes] =>
[ownerDocument] =>
[namespaceURI] =>
[prefix] =>
[localName] =>
[baseURI] =>
[textContent] => some title13524094533324324531John SmithJohnnnn
)

)

Ни чего не понимаю, что тут получилось, но ясно одно все данные в одном месте, что сводит к нулю выборки данных.
У автора получилась нормальная структуру:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:osearch="http://a9.com/-/spec/opensearch/1.1">
   <osearch:title attribute1="value">some title</osearch:title>
   <updated>2010-03-29T04:21:30+02:00</updated>
   <author>
      <uri>urn:guid:3324324531</uri>
      <name>John Smith</name>
   </author>
</feed>

Замена:
Код:
$xml = XML::factory(NULL, "lid");

на
Код:
$xml = XML::factory("atom");

Успехом не увенчалась.
Что делаю не так? Почему пустой POST? Как добиться нормального XML? И как его обработать, получить к примеру содержимое name?
Так, не работает:
Код:
$name = $xml->author->name 

С уважением, Роман.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: xml запрос
СообщениеДобавлено: 09 ноя 2012, 10:23 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 23 июл 2012, 21:58
Сообщения: 100
..Дополняю..
В Wiki описана функция записи в файл, которая не работает:
Код:
$xml->save("test.xml"); 

Ну да ладно, доки старые, функция поменялась:
Код:
$xml->export('test.txt');

Причем в файл пишет именно то, что я и препологал увидеть на страницы:
Код:
<?xml version="1.0" encoding="utf-8"?>
<lid><osearch:title attribute1="value">some title</osearch:title><updated>1352405433</updated><author><uri>3324324531</uri><name>John Smith</name><firstname>Johnnnn</firstname></author></lid>

..надеюсь на помощь..


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group