Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.12.2010, 16:31   #1
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
Вопрос SimpleXML

Доброго времени суток, друзья! Недавно начал работать в пхп с xml. Для этого использую SimpleXML. Но встал вопрос. Как вернуть из объектов SimplXML содержимое обратно в формате xml?
Поясню:
PHP код:
$model = "amino";
$ip = "0.0.0.0";
$command = "test";
$str = '<?xml version="1.0" encoding="utf-8"?>
<request>
    <model></model>
    <ip></ip>
    <command></command>
</request>
';
$request = new SimpleXMLElement($str);
$request->model = $model;
$request->ip = $ip;
$request->command = $command;
echo "<br />" . var_dump($request);
echo "<br />" . $request->asXML();
Собственно в данном коде я произвел необходимые мне манипуляции и вывел их в виде массива, но как мне их вывести в формате:
Код HTML:
<?xml version="1.0" encoding="utf-8"?>
<request>
    <model>amino</model>
    <ip>0.0.0.0</ip>
    <command>test</command>
</request>
Нужна помощь!
nec117 вне форума   Ответить с цитированием
Старый 22.12.2010, 16:43   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

разве это не работает echo "<br />" . $request->asXML(); ???
У меня в консоле все выводит.
ssdm вне форума   Ответить с цитированием
Старый 22.12.2010, 16:46   #3
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Работает, но в браузер выводит содержимое документа, без тегов, просто:
Код:
amino0.0.0.0test
nec117 вне форума   Ответить с цитированием
Старый 22.12.2010, 16:48   #4
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Ой. И вправду. Что то я стормазнул) Браузер же и не будет их отображать! Черт, вот что значит 36 часов за кодом Спасибо за помощь, ssdm
nec117 вне форума   Ответить с цитированием
Старый 23.12.2010, 01:10   #5
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Появился еще один вопрос. Как можно готовый xml передать методом POST на указанный скрипт?
nec117 вне форума   Ответить с цитированием
Старый 23.12.2010, 13:06   #6
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Цитата:
Сообщение от nec117 Посмотреть сообщение
Появился еще один вопрос. Как можно готовый xml передать методом POST на указанный скрипт?
Вариантов как минимум 4 - ри . Уточни задачу.
Вот например статья
http://i-novice.net/peredacha-formy-...mya-sposobami/
+ не забываем что есть тег <input type='hidden' .....>
+ AJAX
ssdm вне форума   Ответить с цитированием
Старый 23.12.2010, 13:21   #7
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Вот код с запросом:
Код:
$request = trim($request);
$request =  addslashes($request);
echo "<input type=\"button\" value=\"go\" onclick='ttpost(\"$request\");' >";
echo "<div id='test'></div>";
вот функция обработчик js:
Код:
function ttpost(request){
    $.post('xmltest.php', { req: request}, function(data){ $('#test').html(data)});
  }
в $request лежит строка: <?xml version=\"1.0\" encoding=\"utf-8\"?>
<request><model>amina</model><ip>0.0.0.0</ip><command>diag</command></request>

При попытке отправить пост запрос выдается ошибка: unterminated string literal
nec117 вне форума   Ответить с цитированием
Старый 23.12.2010, 13:34   #8
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Так тебе именно без перезагрузки страницы сделать надо ?

Попробуй без callback а вызвать , то есть
Код:
function ttpost(request){
    $.post('xmltest.php', { req: request});
  }
Попробуй такую запись AJAX
Код:
$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success
  dataType: dataType
});
Попробуй алертом вывести $request .

Ну и наконец обрати внимание на функцию http://api.jquery.com/ajaxError/ - по идее здесь более подробную информацию о ошибке можно увидеть.
ssdm вне форума   Ответить с цитированием
Старый 23.12.2010, 14:02   #9
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Кажется дошло в чем баг может быть. Скорее всего это из за символа переноса каретки. Попробуй так
Код:
$request = trim($request);
$request=ereg_replace("(\r\n|\n|\r)", "<BR/>", $request);
$request =  addslashes($request);
echo "<input type=\"button\" value=\"go\" onclick='ttpost(\"$request\");' >";
echo "<div id='test'></div>";
ssdm вне форума   Ответить с цитированием
Старый 23.12.2010, 15:00   #10
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Собственно отправилось, но пришел как строка. Видимо я не так сам понял задачу. Мне нужно отправить на сервер запрос в формате xml методом post. Как это реализуется?
nec117 вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
simpleXML и теги на русском ADSoft PHP 4 08.12.2009 20:30
SimpleXML AnTe Компоненты Delphi 1 27.12.2008 00:26


11:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.