Чтение онлайн

ЖАНРЫ

Холзнер Стивен

Шрифт:

<xsl:text> </xsl:text>

<xsl:value-of select="NAME/>

 </xsl:template>

</xsl:stylesheet>

Вот результат. Как видите, планеты перенумерованы:

<HTML>

 <HEAD>

<TITLE>

The Planets

</TITLE>

 </HEAD>

 <BODY>

1. Mercury

2. Venus

3. Earth

 </BODY>

</HTML>

Можно

также применять функции для работы с наборами узлов в предикатах, как, например,
PLANET[position=last]
, выбирающая последнего ребенка
<PLANET>
контекстного узла

Предикаты: логические значения

В выражениях XPath можно также использовать логические (Boolean) значения. Для чисел ноль принимается за ложь (false), другие значения — за истину (true). Пустая строка, "", также считается ложью, все остальные строки — истиной.

Для вычисления логических результатов true/false можно применять следующие логические операции XPath:

• != означает «не равно»;

• < означает «меньше, чем» (в документах XML или XSL используйте &lt;);

• <= означает «меньше или равно» (в документах XML или XSL используйте &lt;=);

• = означает «равно» (программисты на С, С++, Java и JavaScript, обратите внимание: эта операция пишется как один знак =, а не два);

• > означает «больше, чем»;

• >= означает «больше или равно».

ИСПОЛЬЗОВАНИЕ СИМВОЛА <

Особенно обратите внимание на то, что непосредственно в документах XML или XSL нельзя использовать символ <, необходимо использовать ссылку на сущность &lt;.

Для связи логических выражений логическими операциями And и Or используются ключевые слова and и or; слово not инвертирует логический смысл выражения — с истины на ложь или со лжи на истину.

В листинге 4.7 я определяю элемент

<PLANET>
Земли и помещаю в таблицу строки "
Earth
", "
needs
", "
no
" и "
introduction
" вместо числовых данных Земли. Я определяю, которая из планет есть Земля, при помощи предиката
"[NAME='Earth']"
, проверяющего значение элемента
<NAME>
, которое, в свою очередь, представляет собой заключенный в элементе текст. Я также предоставил шаблон для других планет, удовлетворяющих предикату "
[NAME!='Earth']
''.

Листинг 4.7. Определение планеты Земля

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

<BODY>

<H1>

The Planets Table

</H1>

<TABLE BORDER="2">

<TR>

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

</TR>

<xsl:apply-templates/>

</TABLE>

</BODY>

</HTML>

 </xsl:template>

 <xsl:template match="PLANET[NAME='Earth']">

<TR>

<TD>Earth</TD>

<TD>needs</TD>

<TD>no</TD>

<TD>introduction.</TD>

</TR>

 </xsl:template>

 <xsl:template match="PLANET[NAME!='Earth']">

<TR>

<TD><xsl:value-of select="NAME"/></TD>

<TD><xsl:apply-templates select="MASS"/></TD>

<TD><xsl:apply-templates select="RADIUS"/></TD>

<TD><xsl:apply-templates select="DAY"/></TD>

</TR>

 </xsl:template>

 <xsl:template match="MASS">

<xsl:value-of select="."/>

<xsl:text> </xsl:text>

<xsl:value-of select="@UNITS"/>

 </xsl:template>

 <xsl:template match="RADIUS">

<xsl:value-of select="."/>

<xsl:text> </xsl:text>

<xsl:value-of select="@UNITS"/>

 </xsl:template>

 <xsl:template match="DAY">

<xsl:value-of select="."/>

Поделиться с друзьями: