связка (php и xml)> html - как правильнее?

Reader

Guest
связка (php и xml)> html - как правильнее?

подаю запрос к серверу XML с помощью curl типа:
PHP:
<myserver.request>
 <login>name</login>
 <password>pass</password>
 <id_catalog>4687</id_catalog> 
</myserver.request>
Далее получаю ответ от сервера
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<myserver.response>
<retval>0</retval>
<retdesc></retdesc>
<id_catalog>345</id_catalog>
<id_catalog>namecatalog</id_catalog>
<section>
<folder id=655><namefolder>name1</namefolder><cnt>5</cnt></folder>
<folder id=658><namefolder>name4</namefolder><cnt>7</cnt></folder>
</section>
</myserver.response>
Далее разбираю полученный ответ с помощью строковых функций, типа strpos, substr и т.д.
Получаю html код:
PHP:
<html>
<title>namecatalog</title>
<table>
<tr><td><a href=?id=655>name1</a></td><td>5</td></tr>
<tr><td><a href=?id=658>name2</a></td><td>7</td></tr>
</table>
</html>
Вопрос: можно ли это делать проще? Ткните в мануал, плиз.
 

Reader

Guest
http://www.php.net/manual/ru/ref.xml.php
(кстати только у меня проблемы с кодировкой данного документа или у Всех?)
 

inTox

вёбных дел мастер
Reader юникод у них, похоже, битый какой-то...
 

Reader

Guest
А в массив запихнуть с помощью Simple XML - тяжко?
Чтобы вручную не разбирать...
 

slach

Новичок
SimpleXML - это не массив =) но в общем случае, мыслишь в правильном направлении... хотя опять же XSLT тут было бы логичнее... но судя по топику... ты о нем ниче не знаешь
 

Reader

Guest
Автор оригинала: slach
XSLT тут было бы логичнее... но судя по топику... ты о нем ниче не знаешь
:(
если бы знал, я бы не спрашивал, а отвечал на вопросы, это точно.
У провайдера php 5 не стоит пока, было бы на domxml проще сделать...
Приходится пока на curl сидеть и жевать каждую строку.
Пока самую большую проблему вызывает наличие
PHP:
<folder id=655>
надо полный список id выковырять, но не могу.
Ткните в ман, плиз.

Или как заставить работать
PHP:
simplexml_load_string($string);
?
 

Alexandre

PHPПенсионер
PHP:
<section> 
<folder id=655><namefolder>name1</namefolder><cnt>5</cnt></folder> 
<folder id=658><namefolder>name4</namefolder><cnt>7</cnt></folder> 
</section>
используй DOM: www.php.net/dom

аттрибут: id получается использованием: http://ru3.php.net/manual/en/function.dom-domelement-getattribute.php

-~{}~ 09.03.05 10:31:

посмотри пример, в твоем случае строка запроса будет:

$imagedata = $xpath->query("//section/folder");
 

Reader

Guest
Не работают функции domxml у провайдера :(
Может самому в php.ini что-то поправить?
 

inTox

вёбных дел мастер
Не работают функции domxml у провайдера
Может самому в php.ini что-то поправить?
нет, не получится. Надо дербенить прова, чтоб подключил библиотеку. В принципе это реально, но могут и отказать. Опять же, если задача выглядит именно так, как ты описал, имеет смысл разбирать через SAX. Основной плюс - здорово увеличивается производительность. Основной минус - надо больше думать.
 

Reader

Guest
что за зверь SAX ?
где маны? Ткните, плиз, а то я уже на curl доделываю :))
 

inTox

вёбных дел мастер
это зависит от плана хостинга,
Не-е... Это зависит от твоей настойчивости. Опыт показывает, что если регулярно капать на мозг суппорту — подключают через 1-2 недели. :)
 

Reader

Guest
:) Саппорт сказал:
Скачивайте, компилируйте, устанавливайте как модуль :)
В общем я понял, что присутствие php5 на хостинге пока не желательно.
 

Alexandre

PHPПенсионер
если есть желание компилить, то DOM
если нет - то выбор невелик: SAX
 

Alexandre

PHPПенсионер
inTox
надо спрашивать не какой хост, а какой тарифный план хостинга
скорее всего - выделенный сервер.
 

inTox

вёбных дел мастер
Alexandre боюсь скатиться до оффтопа, но за прошедшие полгода я доконал на эту тему комбелгу и арбатек. В обоих случаях тарифный план это не предусматривал. Хотелось знать процент саксесс стори и характер отмазок хостеров.
 

Reader

Guest
Инфобокс и Валуй - хоть тут хоть тут, может вместе доканаем :), если опыт есть :)))
 
Сверху