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

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

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

Старожил


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

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


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

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

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

спасибо.

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

 

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


Contributor


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

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


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

The simplest type of transformation with the xslt_process() function is the transformation of an XML file with an XSLT file, placing the result in a third file containing the new XML (or HTML) document. Doing this with sablotron is really quite easy...

Пример 1. Using the xslt_process() to transform an XML file and a XSL file to a new XML file

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

<?php


// Allocate a new XSLT processor
$xh xslt_create();

// Process the document
if (xslt_process($xh'sample.xml''sample.xsl''result.xml')) {
    echo 
"SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
    echo 
", result.xml has the following contents\n<br />\n";
    echo 
"<pre>\n";
    
readfile('result.xml');
    echo 
"</pre>\n";
} else {
    echo 
"Sorry, sample.xml could not be transformed by sample.xsl into";
    echo 
"  result.xml the reason is that " xslt_error($xh) . " and the ";
    echo 
"error code is " xslt_errno($xh);
}

xslt_free($xh);

?>

While this functionality is great, many times, especially in a web environment, you want to be able to print out your results directly. Therefore, if you omit the third argument to the xslt_process() function (or provide a NULL value for the argument), it will automatically return the value of the XSLT transformation, instead of writing it to a file...

Пример 2. Using the xslt_process() to transform an XML file and a XSL file to a variable containing the resulting XML data

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

<?php


// Allocate a new XSLT processor
$xh xslt_create();

// Process the document, returning the result into the $result variable
$result xslt_process($xh'sample.xml''sample.xsl');
if (
$result) {
    echo 
"SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo 
" variable, the \$result variable has the following contents\n<br />\n";
    echo 
"<pre>\n";
    echo 
$result;
    echo 
"</pre>\n";
} else {
    echo 
"Sorry, sample.xml could not be transformed by sample.xsl into";
    echo 
"  the \$result variable the reason is that " xslt_error($xh); 
    echo 
" and the error code is " xslt_errno($xh);
}

xslt_free($xh);

?>


The above two cases are the two simplest cases there are when it comes to XSLT transformation and I'd dare say that they are the most common cases, however, sometimes you get your XML and XSLT code from external sources, such as a database or a socket. In these cases you'll have the XML and/or XSLT data in a variable -- and in production applications the overhead of dumping these to file may be too much. This is where XSLT's "argument" syntax, comes to the rescue. Instead of files as the XML and XSLT arguments to the xslt_process() function, you can specify "argument place holders" which are then substituted by values given in the arguments array (5th parameter to the xslt_process() function). The following is an example of processing XML and XSLT into a result variable without the use of files at all.

Пример 3. Using the xslt_process() to transform a variable containing XML data and a variable containing XSL data into a variable containing the resulting XML data

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

<?php

// $xml and $xsl contain the XML and XSL data

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

// Allocate a new XSLT processor
$xh xslt_create();

// Process the document
$result xslt_process($xh'arg:/_xml''arg:/_xsl'NULL$arguments); 
if (
$result) {
    echo 
"SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo 
" variable, the \$result variable has the following contents\n<br />\n";
    echo 
"<pre>\n";
    echo 
$result;
    echo 
"</pre>\n";
} else {
    echo 
"Sorry, sample.xml could not be transformed by sample.xsl into";
    echo 
"  the \$result variable the reason is that " xslt_error($xh) . 
    echo 
" and the error code is " xslt_errno($xh);
}
xslt_free($xh);
?>


Finally, the last argument to the xslt_process() function represents an array for any top-level parameters that you want to pass to the XSLT document. These parameters can then be accessed within your XSL files using the <xsl:param name="parameter_name"> instruction. The parameters must be UTF-8 encoded and their values will be interpreted as strings by the Sablotron processor. In other words - you cannot pass node-sets as parameters to the XSLT document.

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


Отправлено: 10:48, 02-10-2005 | #21



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

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


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


Contributor


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

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


а это код движка шаблонов с использованием XSLT

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

function xml2html($XML$debug 0)

{
  
$XSL implode (''file('./xslt/top100.xslt'));

  
$arguments = array('/_xml' => $XML,'/_xsl' => $XSL);

  
// Allocate a new XSLT processor
  
$xh xslt_create();

  
// Process the document
  
$HTML xslt_process($xh'arg:/_xml''arg:/_xsl'NULL$arguments);
  if(
$debug)
  {
    
header('Content-type: application/xml');
    print 
$XML;
  }
  else
  {
    if (
$HTML)
    {
      echo 
str_replace('&''&'$HTML);
    }
    else
    {
      echo 
" Sorry, sample.xml could not be transformed by sample.xsl into";
      echo 
" the \$XML variable the reason is that " xslt_error($xh);
      echo 
" and the error code is " xslt_errno($xh);
    }
  }
  
xslt_free($xh);


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


Отправлено: 10:49, 02-10-2005 | #22


Аватара для benya

Старожил


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

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


Так что выполняет эти преобразования, браузер или некий текстовый "просессор"?

Отправлено: 18:01, 03-10-2005 | #23


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


Contributor


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

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


benya
и то и другое может это делать.

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


Отправлено: 00:04, 04-10-2005 | #24


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

Ветеран


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

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


benya я бы сказал гипертекстовый

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


Отправлено: 04:06, 04-10-2005 | #25


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


Contributor


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

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


E-mail
Цитата:
1. а что это за элементы?
2. откуда беруться @href и @txt
3. насколько я понял это талица стиля, но если ее открыть IE 6 то ничего не видно, можно пример связывающий мой пример полной работы с данными используя эти технологии? ну просто чтобы всем наглядно было и понятно как это работает..
не путайте XSLT и CSS
XSLT это не таблица стилей это шаблонное преобразование "дома"!

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


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


Аватара для benya

Старожил


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

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


Господа, а кто подскажет нормальный XSLT парсер для PERL. Нашел Sablotron, да вот не нравится он мне совсем и установка его тоже

Отправлено: 13:54, 04-10-2005 | #27


Аватара для Greyman

Человек


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

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


Не знаю точно куда бросить: в Программирование, Вэбмастеру или вообще во Флейм. Пока кидаю в Вэбмастеру, далее модеры решат...

Тут давеча искал в инете фигню всякую, дык наткнулся на такой ресурс:
Глоссарий по стандартам платформы XML
Цитата:
Целью предлагаемой работы является систематизация терминологии стандартов активно развиваемой в последние годы консорциумом W3C новой технологической платформы Web, основанной на расширяемом языке разметки XML. Сложности здесь заключаются не только в большом объеме сложным образом взаимосвязанных документов, определяющих указанные стандарты, но и в том, что русскоязычная терминология в этой области лишь начинает формироваться и охватывает пока, главным образом, только собственно стандарт XML. Между тем, функциональность Web нового поколения определяется всем комплексом стандартов платформы XML, многие из которых уже начинают активно использоваться на практике. В связи с этим, формирование русскоязычной терминологии стандартов XML-платформы представляется нам актуальным и важным делом.
Предлагаемая версия глоссария значительно отличается от первой его версии, опубликованной 28.06.2000. В нее дополнительно включена терминология важных стандартов XSL и XSLT, уточнены материалы, заимствованные из предыдущей версии, исправлены замеченные погрешности.
Думаю лишним не будет...

-------
Будь проще...


Отправлено: 17:24, 05-10-2005 | #28


Аватара для benya

Старожил


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

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


Ну, со статическими простыми документами более менее понятно - взяли XML документ и с XSL документом протянули через "процессор" и на выходе получили то, что надо.
Но вот как обрабатываются страницы с динамическим контентом, где происходит выборка из базы данных итд.? Это не совсем понятно.
Как обрабатываются типичные сайты у которых есть к примеру слева : Меню,поиск, баннера. Справа: анонсы, колонка новостей.
Чего генерить то? Все генерим в XML, а в самом конце прямо с ходу обрабатываем?
Делать один XSL шаблон или с маленькими подшаблончиками, и как-то их туда подключаем?
Опять же возвращаясь к разделяемости дизайна от программной части. Встраивать "теги" XML в скрипт можно? Это уже ведь не дизайн Или чем-то тоже XML спецефическим генерить?

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


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


Contributor


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

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


benya
1) разрабатываешь концепцию веб приложения и его структуру
2) разрабатываешь дом модель
3) генеришь XML с сответствующим домом
4) преобразовываешь его в посошью соответствующего XSLT преобразования.

XSLT файл это не шаблон! это преобразование! которое можен содержать много шаблонов!

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


Отправлено: 12:32, 11-10-2005 | #30



Компьютерный форум 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




 
Переход