В общем попробовал еще так, пока все в одном контроллере:
Цитата:
//Генерю 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>';
}
Когда проверяю:
Код:
Получаю:
Цитата:
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
С уважением, Роман.