Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / XML / Стилевые таблицы XSL /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Сценарии - Программирование от RIN.RU
Сценарии

Сценарии могут использоваться в документах XSL точно также, как и в HTML. Кроме того, сценарии, содержащиеся внутри XSL-документа и запускаемые броузером в процессе обработки документа могут динамически создавать HTML-документы, извлекая необходимую для этого информацию непосредственно из элементов XSL-документа.


Для написания сценариев XSL использует специальный скриптовый язык - ECMAScript. Однако в msxsl для этих целей можно применять Microsoft JavaScript,- язык, который объединил в себе некоторые элементы стандартного JavaScript и ECMAScript.


Вычисление выражений


Наиболее простым примером использования сценариев в XSL -документе является вычисление значений параметров описываемых элементов. Для этого надо просто поставить знак равенства в качестве первого символа параметра, что заставит XSL-процессор вычислить значение выражения(синтаксис этого выражения должен отвечать требованиям JavaScript). Например, после разбора этого правила:


<rule>
<target-element type="header">
<hr width="=100-20+"%"">
<children/>
<hr width="80%">
</rule>


в выходном документе окажутся следующие инструкции:


<hr width=80%>
...
<hr width=80%>


Очень часто в правилах XSL необходимо использовать атрибуты описываемого в них элемента. Для этого мы должны воспользоваться методом getAttribute(), описанным в объектной модели XML (мы рассматриваем объектную модель XML-документов, предложенную Microsoft, список этих функций приведен в конце раздела). Т.к. каждому элементу XSL доступен указатель на соответствующий ему объект, сценарий может обращаться к внутренним функциям и свойствам этих элементов, при помощи которых и осуществляются необходимые действия.


В следующем фрагменте XML- документа определяется элемент

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


<articles>
<article src="http://server/pages/article.html">Bugs report</article>
</articles>


Для того, чтобы использовать этот атрибут в выходном HTML-документе, необходимо определить следующее правило:


<rule>
<target-element type="article">
<a href="=getAttribute("src")">
<children/>
</a>
</rule>


После обработки этого фрагмента в выходной документ будет помещен элемент:


<a href="http://server/pages/article.phpl">Bugs report</a>






Выполнение инструкций


Другим способом помещения в выходной HTML- документ информации, являющейся результатом выполнения каких-либо операций JavaScript &radic сценариев является использовнаие инструкции <eval>;:


<rule>
<element type="articles">
<target-element type="article">
</element>
<tr><td><eval>childNumber(this)</eval></td><td>
<children/>
</td><tr>
</rule>


Метод childNumber в данном случае возвращает текущий номер дочернего элемента.


Определение функций и глобальных переменных


Аналогично тэгу <SCRIPT> в HTML, элемент <define-script> содержит функции и определения глобальных переменных. Обычно в XSL-документе определяется один элемент <define-script>, расположенный в самом начале.


<xsl>
<define-script>
<![CDATA[
var fontSize=12;
function getColor(elem){
return elem.children.item("color",0).text;
// Возвращает содержимое дочернего элемента <color>
}]]>
</define-script>
<rule>
<target-element type = "flower">
<div background-color="=getColor(this)"; font-size="=fontSize">
<children/>
</div>
</rule>
</xsl>


Если применить эти правила к такому фрагменту XML- документу:


<xml>
<flower>
rose
<color>red</color>
</flower>


то на выходе HTML -документ будет содержать следующие элементы:


<div background-color="red"; font-size="12">


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


Вперед  >>>
 1  2 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Структура XSL- таблиц

Правила стилей

Встроенные функции XSL

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь