» Xml для новичков
» Главная страница
»
К оглавлению
Выполнение инструкций
Другим способом помещения в выходной HTML- документ информации,
являющейся результатом выполнения каких-либо операций JavaScript – сценариев
является использовнаие инструкции <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">
Необходимо отметить, что использование глобальных переменных в
некоторых случаях может приводить к серьезным ошибкам, вызванным попытками
одновременного к ним доступа. Поэтому рекомендуется использовать такие
переменные только в качестве констант. Использование Java Script для HTML
Создавая шаблон HTML-документа, Вы можете указывать в нем
практически любые элементы HTML, в том числе и блоки <SCRIPT>, внутри
которых можно задавать любые конструкции Java Script, используя для этого
область CDATA: <xsl>
<rule>
<root/>
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JSCRIPT"><![CDATA[
var ie4=((navigator.appName=="Microsoft Internet
Explorer")&&(parseInt(navigator.appVersion) >= 4 ));
function msover(){
if (ie4){
event.srcElement.style.color="red";
event.srcElement.style.cursor = "hand";
}
}
function msout(){
if (ie4){
event.srcElement.style.color="black";
event.srcElement.style.cursor = "auto";
}
} ]]></SCRIPT>
</HEAD>
<BODY>
<children/>
</BODY>
</HTML>
</rule>
<rule>
<target-element type="chapter"/>
<DIV id='=tagName + formatNumber
(childNumber(this),"1")'
background-color="marron"
onmouseover='="msover("+ tagName +
formatNumber(childNumber(this),"1")+")"'
onmouseout='="msout("+ tagName +
formatNumber(childNumber(this),"1")+")"'
<children/>
</DIV>
</rule>
</xsl>
Если использовать эти правила
для следующего XML- документа:
<contents>
<chapter>Part1</chapter>
<chapter>Part2</chapter>
<chapter>Part3</chapter>
</contents>
то в результате мы получим такой HTML-файл:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JSCRIPT">
var ie4=((navigator.appName=="Microsoft Internet
Explorer")&&(parseInt(navigator.appVersion) >= 4 ));
function msover(){
if (ie4){
event.srcElement.style.color="red";
event.srcElement.style.cursor = "hand";
}
}
function msout(){
if (ie4){
event.srcElement.style.color="black";
event.srcElement.style.cursor = "auto";
}
}
</SCRIPT>
</HEAD>
<BODY>
<DIV id=''chapter1"
onmouseover="msover("chapter1")"'
onmouseout="msout("chapter1")"'
Part 1
</DIV>
<DIV id=''chapter2"
onmouseover="msover("chapter2")"'
onmouseout="msout("chapter2")"'
Part 2
</DIV>
<DIV id=''chapter3"
onmouseover="msover("chapter3")"'
onmouseout="msout("chapter3")"'
Part 3
</DIV>
</BODY>
</HTML>
Следующий
урок
|