Помогите разобрать простой xml из потока и записать в файл(парсер)

olegka

Новичок
Помогите разобрать простой xml из потока и записать в файл(парсер)

Доброго времени суток.

Такая вещь. Я. потоком получаю XML:
Код:
$xml = fopen("php://input","r");
$file = fopen("listmessage.dat","a+");
  while ($data = fread($xml,1024))
  fwrite($file,$data);
fclose($file);
fclose($xml);
Получаю XML такого вида:
<?xml version="1.0" encoding="UTF-8"?>
<message><sуn>99999</sуn><sоn>5475675656</sоn><body content-type="text/plain">епротипе парапр варпар</body></message>
Помогите сделать простенький парсер что б разобрать xml прямо с потока и записать его в файл, например, в виде:
99999:::5475675656:::епротипе парапр варпар:::
С разделителями, что б я потом мог циклы делать.

По идее, должно было работать примерно так:
Код:
$readfile = file_get_contents("php://input");
$sуn = $xmldoc->getElementsByTagName('sуn');
$sоn = $xmldoc->getAttribute('sоn');
$body = $xmldoc->getAttribute('body');
$message = $sуn."|||".$sоn."|||".$body."|||\n";
$fp = fopen("file.txt", 'a+') or die ("Ошибка открытия файла!");
fputs($fp, $message);
fclose($fp);
Но так не работает, и половина других XML функций говорит, что это не обект и т. п...
Замучился уже с этим ХМЛ!!! Помогите, плииз!
Заранее ОГРОМНОЕ СПАСИБО ЗА Ваши ОТВЕТЫ!
 

olegka

Новичок
simplexml не будет читать с стрима file_get_contents("php://input");
Эти функции просят файл
 

slach

Новичок
$readfile = file_get_contents("php://input");
$sуn = $xmldoc->getElementsByTagName('sуn');

=))
офигенный переход
где у тебя парсинг то $readfile??

а вообще FB3
для этого случая (чтение из потока) идеально подходит XMLReader
http://php.net/manual/ru/book.xmlreader.php
http://www.php.net/manual/ru/xmlreader.open.php

$xml = XMLReader::eek:pen('php://input');
и дальше как в примере
http://www.php.net/manual/ru/class.xmlreader.php#88070

заодно научитесь отличать DOM парсинг от SAX парсинга
 

FB3

Новичок
Я то знаю, ЧТО идеально подходит :)
Но судя по объему того, что нужно считать и судя по автору, что нужно как можно проще, все таки больше подойдет SimpleXML.
 

kiruxa_dnp

Новичок
делал отработку на RegEx Tracer

когда тулю в функцию почемуто ругается
 
Сверху