» Xml для новичков
» Главная страница
»
К оглавлению
Сценарии
Сценарии могут использоваться в документах 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- документа определяется элемент
<article>, в котором атрибут 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.html"
>Bugs report</a>
Следующий
урок
|