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

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

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

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

Ответ
 
Опции темы
Старый 22.12.2010, 15: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, 15:43   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

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

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

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

Появился еще один вопрос. Как можно готовый xml передать методом POST на указанный скрипт?
nec117 вне форума Ответить с цитированием
Старый 23.12.2010, 12: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, 12: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, 12: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, 13: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, 14:00   #10
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

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

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

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS