ВНИМАНИЕ! Конкурс по программированию!

Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.

 
Информация к новости
 (голосов: 0)

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

Категория: WEB-программирование » 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>

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Введите два слова, показанных на изображении: *