Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Что еще можно сделать с XML + XSLT + XSL

Ответить
Настройки темы
Что еще можно сделать с XML + XSLT + XSL

Старожил


Сообщения: 236
Благодарности: 0

Профиль | Отправить PM | Цитировать


приступил к изучению, но вот только не как не пойму, как это все работает)

IE 6 какуето несоурядицу показывает, может надо какойто можуль устонавливать дополнительно?

не в плом, наваяйте простенький рабочий пример XSL XHTML чтобы работал в IE 6, чтонибудь типа hello world с красивастями показывающие возможности.

спасибо.

Отправлено: 07:42, 12-09-2004

 

Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula
Цитата:
а дизайнер вместо того чтобы верстать HTML шаблоны будет верстать XSLT шаблоны...
Где ж такого умного дизайнера то взять?

Цитата:
ну... вообщето он встроен в PHP по дефолту...
Ясный перец! У пихипишников всегда все по-человечески.
А я пишу в Perl Там нужен какой-то связующий модуль с XSLT процессором.
Мне обьяснили (сотрудники службы поддержки) на форуме хостера что нужно писать в саппорт на мыло с веским обоснованием, типа зафиг мне все это.
Интересно как обосновать то, что бы не выглядело личными потребностями, а типа на общих основаниях? Типа W3C рекомендует? Или хочу визуализировать как пихипишники?

Отправлено: 18:29, 13-10-2005 | #41



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


benya
1) а что ты не можешь ставить свои модули на сервер?
2) на самом деле XSLT не особо сложнее HTML

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 19:30, 13-10-2005 | #42


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula
1)Нет, конечно. У меня же не выделенный сервер
Все ставят сами админы если им надоедать через службу поддержки. К тому же они там сами не плавают в том что такое XSLT и с чем его едят.
2) Спасибо, я заметил.

Отправлено: 11:41, 14-10-2005 | #43


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


benya
ну... не знаю... я вот знаю хостеров которые позволяют даже собственный подуль пхп собирать на сервере.

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 11:58, 14-10-2005 | #44


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Vlad DrakulaЛюди то разные бывают, такого могут насобирать

Отправлено: 12:19, 14-10-2005 | #45


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula,
Цитата:
в связи с тем что доки у нас не в чести, лично привожу выписку о том как это бзать из доки по ПХП
почему же, в чести, вот привожу тот пример из доков только на русском языке:

xslt_process - выполняет XSLT-трансформацию.

Описание:
mixed xslt_process (resource xh, string xml, string xsl [, string result [, array arguments [, array parameters]]])

xslt_process() это краеугольный камень нового расширения XSLT. Она даёт возможность выполнять XSLT-трансформацию с использованием почти всех типов источников ввода. Это делается с помощью буферов аргументов -- концепции, взятой из Sablotron XSLT-процессора (в настоящее время - единственного XSLT-процессора, который поддерживается данным расширением).

Самая простая трансформация функцией xslt_process() - это трансформация XML-файла XSLT-файлом с помещением результата в третий файл, содержащий новый XML (или HTML)-документ. Сделать это с помощью sablotron действительно довольно легко ...

Пример 1. Использование xslt_process() для трансформации XML-файла и
XSL-файла в новый XML-файл


PHP код: Выделить весь код

// Разместить новый XSLT-процессор

$xh xslt_create();

// Обработать документ
if (xslt_process($xh'sample.xml''sample.xsl''result.xml')) {
    print 
"SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
    print 
", result.xml has the following contents\n<br>\n";
    print 
"<pre>\n";
    
readfile('result.xml');
    print 
"</pre>\n";
}
else {
    print 
"Sorry, sample.xml could not be transformed by sample.xsl into";
    print 
"  result.xml the reason is that " xslt_error($xh) . " and the ";
    print 
"error code is " xslt_errno($xh);
}

xslt_free($xh); 

Хотя эта функциональность великолепна, часто, особенно в окружении web, вам понадобится выводить результату напрямую. Следовательно, если вы опустите третий аргумент для функции xslt_process() (или предоставите NULL-значение этого аргумента), она автоматически возвратит значение XSLT-трансформации, вместо записи его в файл ...

Пример 2. Использование xslt_process() для трансформации XML-файла и XSL-файла в переменную, содержащую результирующие XML-данные

PHP код: Выделить весь код

// Разместить новый XSLT-процессор

$xh xslt_create();

// обработать документ, возвращая результат в переменной $result
$result xslt_process($xh'sample.xml''sample.xsl');
if (
$result) {
    print 
"SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    print 
" variable, the \$result variable has the following contents\n<br>\n";
    print 
"<pre>\n";
    print 
$result;
    print 
"</pre>\n";
}
else {
    print 
"Sorry, sample.xml could not be transformed by sample.xsl into";
    print 
"  the \$result variable the reason is that " xslt_error($xh) . 
    print 
" and the error code is " xslt_errno($xh);
}

xslt_free($xh); 



Это были два простейших случая XSLT-транфсормации, и я могу с уверенностью сказать - самые распространённые случаи, однако иногда вы получаете ваш XML и XSLT-код из внешних источников, таких как БД или сокет. В этих случаях у вас будут XML и/или XSLT-данные в переменной -- и в работающих приложениях перегрузка при дампе их в файл может оказаться значительной. Вместо файлов как аргументов XML и XSLT для xslt_process(), вы можете специфицировать "заглушки документов", которые затем замещаются значениями из массива аргументов (5-й параметр функции xslt_process()). Далее идёт пример процессинга XML и XSLT в результирующую переменную вообще без использования файлов.

Пример 3. Использование xslt_process() для трансформации переменной, содержащей XML-данные, и переменной, содержащей XSL-данные, в переменную, содержащую результирующие XML-данные

PHP код: Выделить весь код

// $xml и $xsl содержат XML и XSL-данные


$arguments = array(
     
'/_xml' => $xml,
     
'/_xsl' => $xsl
);

// разместить новый XSLT-процессор
$xh xslt_create();

// обработать документ
$result xslt_process($xh'arg:/_xml''arg:/_xsl'NULL$arguments); 
if (
$result) {
    print 
"SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    print 
" variable, the \$result variable has the following contents\n<br>\n";
    print 
"<pre>\n";
    print 
$result;
    print 
"</pre>\n";
}
else {
    print 
"Sorry, sample.xml could not be transformed by sample.xsl into";
    print 
"  the \$result variable the reason is that " xslt_error($xh) . 
    print 
" and the error code is " xslt_errno($xh);
}
xslt_free($xh); 



Наконец, последний аргумент функции xslt_process() это любые параметры, которые вы хотите передать в XSLT-документ. Можно получить доступ к этим параметрам внутри ваших XSL-файлов с помощью инструкции <xsl:param name="parameter_name">.


ждем приложения

Цитата:
представлю вам веб приложение которое построено по такой технологии

-------
Основы HTML | Конференции


Отправлено: 19:56, 15-10-2005 | #46


Аватара для benya

Старожил


Сообщения: 302
Благодарности: 5

Профиль | Сайт | Отправить PM | Цитировать


Не дождемся видать приложения. Ок. Есть следующий вопрос!
Имеем хмл файл:
PHP код: Выделить весь код

<?xml version="1.0" encoding="windows-1251"?>

<site>
<!-- Новые имена -->
<vi>
<vi_list>
<item>Сюжет рекламного ролика строительной компании «SCHUCO» снимался в рировской студии. Во время съёмок в качестве символа компании использовался беркут. Материал снимался в формате Digital Betacam. 
Срок изготовления ролика 8 дней.</item>

</vi_list>
</vi>
<!-- END -->
</site>

В самом тексте тега <item> есть перевод каретки \n перед "Срок изготовления ролика 8 дней."

Так вот вопрос, как же его превратить этот \n в <br/>???
Раньше вопрос решался очень просто - фильтром в скрипте, а теперь как??? Текст, то в HTML одну строчку пойдет...

Отправлено: 12:59, 31-10-2005 | #47


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


benya
Насколько я себе представляю, правильный метод в данном случае - использовать внутри тега item XHTML разметку. Т.е. делать все требуемые преобразования на этапе генерации XML. Ну и в схеме xml-файла тогда это как-то надо укзать, если нужна валидация (как - не знаю, ибо никогда не валидировал xml, что в общем-то неправильно).

И самое главное. Задача XSLT - преобразование иерархических XML-документов, а не текста (пусть и "внутри" какого-то тега). Для работы с текстом используются всё те же банальные регэкспы.

-------
http://ivank.ru


Отправлено: 19:35, 31-10-2005 | #48


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
Не дождемся видать приложения
benya дракула там в соседней ветке помогает людям фреймы использовать, освободится - тогда....

-------
Основы HTML | Конференции


Отправлено: 06:46, 10-11-2005 | #49


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


benya
я думаю что нужно написать нечто вроде этого:

<xsl:template match="item/text()">
<xsl:value-of select="replace(., '\n', '<br/>')" disable-output-escaping="no" />
</xsl:template>

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 11:55, 10-11-2005 | #50



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Что еще можно сделать с XML + XSLT + XSL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Что можно сделать с ЖК монитором? STINGER85 Прочее железо 5 16-01-2009 23:52
Реабилитация XML/XSLT технологий Vlad Drakula Вебмастеру 8 30-03-2008 01:47
xsl проверка существования тега в xml FADE Вебмастеру 3 23-04-2007 11:29
XML + XSL + PHP => HTML, Как передать бинарный код рисунка ? Lexxx_HU Вебмастеру 5 02-03-2007 17:55
[решено] Как вывести XML аттрибуты через XSL hasherfrog Вебмастеру 1 08-11-2006 16:06




 
Переход