обработать DUMP

#
Re: обработать DUMP
Mikhail писал(а):
можно ли в XSL сделать ограничение выводимых элементов и страницы
- ограничение выводимых элементов сделать можно(например, с помощью предикатов - это когда при вызове тэмплейта в квадратных скобках указываются различные ограничения). По поводу ограничений на "страницы" - не совсем понятно, что имеется ввиду. Поясните.

Mikhail писал(а):
Тогда как можно сделать ссылку для просмотра деталей через уже новый XSL?
- можно ссылку на конкретный элемент(автомобиль) сделать в виде ссылки на текущую страницу, но с добавлением параметра, содержащего уникальный идентификатор данного элемента(т.е. передавать методом get. Например, href="./?id={vin}" ). В php-коде данного раздела сайта перед вызовом метода применения XSL-а к XML-у нужно добавить проверку: если пришел параметр $_GET['id'], то в имеющийся XML-код дописывать(средствами php-функций работы со строками. Ведь по сути XML - это большая строка) содержимое этого параметра(в виде значения определенного дополнительного тэга, например в XML-е в итоге появится такой тэг: <show_item>KM8JN72D95U211241</show_item> ). Затем получившийся XML-код обработать специально подготовленным XSL-шаблоном(в его коде нужно вызвать тэмплейт только для того car-а, у которого подузел vin имеет именно то значение, которое мы передали в дополнительном тэге <show_item> ).
#
Re: обработать DUMP

просто в этом xml файле порядка 50 строк, я бы хотел разбить их на страницы.
#
Re: обработать DUMP

Если с XSL я иногда здороваюсь, то PHP пока это не знакомый сосед.
Из того что я нашел в нете - получается так (читал ваш ответ 3 часа)

А нельзя например делать запрос get и выполнять его шаблоном для уже элемента выводя строку этого "vin"?

что-то типа:

<?php

$url = 'http://globalautousa.com/dump/dump.xml';
$xsl_name = 'ПоказатьАмерику';

// Загружаем внешний XML
$kernel = & singleton('kernel');
$xmlData = $kernel->GetUrl($url);

if(isset($_GET['id']) && $_GET['id'] == "vin" )
{

     $result = $xsl->build($xmlData, 'ВыводЕденицыАмерики');
     return;
}

else
{

// Обрабатываем XML с помощью XSL-шаблона
$xsl = new xsl();
$result = $xsl->build($xmlData, $xsl_name);
}

// Распечатаем результат
echo $result;

?>

только как потом привязать определенный "vin" к шаблону....   хотелось бы конкретных примеров, а иначе трудно сразу понять, потому что даже не знаешь с чего начать.
#
Re: обработать DUMP
Mikhail, вы все почти правильно реализовали на PHP(не понятно только зачем return нужен после $result = $xsl->build($xmlData, 'ВыводЕденицыАмерики'. А также проверка:
$_GET['id'] == "vin"
- неверна. Т.к. в элементе $_GET['id'] будет содержаться НЕ строка 'vin', а конкретный идентификатор автомобиля. Например, KM8JN72D95U211241. Поэтому фрагмент:
&& $_GET['id'] == "vin"
можно вообще убрать).
Я подобную реализацию и пыталась описать. Но сейчас получается, что в зависимости от условия разные XSL-шаблоны применяются к одному и тому же XML-коду. Но вам-то нужно обрабатывать только тот фрагмент XML-а, который соответствует имеющемуся в get-е vin. Чтобы имеющееся в get-е значение vin-а "сообщить" XSL-шаблону, нужно менять сам XML-код. Для этого предлагаю дописывать в переменную $xmlData еще один XML-тэг, содержащий наш vin. Например:
$ExternalXml = new ExternalXml();
$array['show_item'] = to_str($_GET['id']);
$type = 0;
$xmlData.= $ExternalXml->GenXml($array, $type);

$result = $xsl->build($xmlData, 'ВыводЕденицыАмерики');

И еще замечание по коду: создание объекта класса
$xsl = new xsl();
нужно переместить перед условием
if(isset($_GET['id']))
#
Re: обработать DUMP

больше спасибо.

я потом еще раз посмотрел и понял, что return не нужен, но исправлять не стал (такая гордость берет).

по остальному больше спасибо, все вроде начало продвигаться, но есть пока недопонимания, поэтому решил написать в поддержку.
#
Re: обработать DUMP
Mikhail, запрос в поддержке получен. Ответ будет уже там.
Авторизация