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

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

</xsl:copy>

 </xsl:template>

 <xsl:template match="vertex">

<vertex name="{@name}" connects="{@connects}">

<xsl:comment>

<xsl:for-each select="id(@connects)|id(id@connects)/@connects)">

<xsl:text> </xsl:text>

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

</xsl:for-each>

</xsl:comment>

</vertex>

 </xsl:template>

</xsl:stylesheet>

Листинг 6.16.
Выходящий документ

<!DOCTYPE vertices SYSTEM "gemini.dtd">

<vertices>

 <vertex name="alpha" connects="tau">

<!-- alpha epsilon theta iota tau-->

 </vertex>

 <vertex name="beta" connects="upsilon">

<!-- beta delta iota kappa upsilon-->

 </vertex>

 <vertex name="gamma" connects="zeta">

<!-- gamma delta zeta-->

 </vertex>

 <vertex name="delta" connects="zeta lambda upsilon">

<!-- beta gamma delta zeta iota kappa lambda xi upsilon-->

 </vertex>

 <vertex name="epsilon" connects="nu mu tau">

<!-- alpha epsilon theta iota mu nu tau-->

 </vertex>

 <vertex name="zeta" connects="delta gamma">

<!-- gamma delta zeta lambda upsilon-->

 </vertex>

 <vertex name="theta" connects="tau">

<!-- alpha epsilon theta iota tau-->

 </vertex>

 <vertex name="iota" connects="tau upsilon">

<!-- alpha beta delta epsilon theta iota kappa tau upsilon-->

 </vertex>

 <vertex name="kappa" connects="upsilon">

<!-- beta delta iota kappa upsilon-->

 </vertex>

 <vertex name="lambda" connects="delta xi">

<!-- delta zeta lambda xi upsilon-->

 </vertex>

 <vertex name="mu" connects="epsilon">

<!-- epsilon mu nu tau-->

 </vertex>

 <vertex name="nu" connects="epsilon">

<!-- epsilon mu nu tau-->

 </vertex>

 <vertex name="xi" connects="lambda">

<!-- delta lambda xi-->

 </vertex>

 <vertex name="tau" connects="alpha theta iota epsilon">

<!-- alpha epsilon theta iota mu nu tau upsilon-->

 </vertex>

 <vertex name="upsilon" connects="beta iota kappa delta">

<!-- beta delta zeta iota kappa lambda tau upsilon-->

 </vertex>

</vertices>

Базовые

продукции XPath

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

Литералы — это строковые значения, заключенные в одинарные или двойные кавычки. В литералах нельзя использовать символ кавычек, в которые они заключены. Кроме этого, поскольку XPath-выражения чаще всего используются в атрибутах элементов, в них нельзя использовать символы "

<
" и "
&
" — они должны заменяться на сущности. Литералам соответствует продукция
Literal
, определяемая в виде:

[XP29] Literal ::= '"' [^"]* '"' | "'" [^']* "'"

XPath использует десятичную систему счисления. Наборы цифр, соответствующие правилу

Digits
, могут состоять из цифр от
0
до
9
:

[XP31] Digits ::= [0-9]+

Число в XPath состоит из последовательности цифр, которые могут быть разделены точкой, причем точка может стоять как в начале числа (

.5
), так и в конце (
5.
). Числу соответствует EBNF-правило
Number
:

[XP30] Number ::= Digits ('.' Digits?)? | '.' Digits

Оператору умножения соответствует символ "

*
" и синтаксическое правило
MultiplyOperator
:

[XP34] MultiplyOperator ::= '*'

Именам переменных, которые используются в XPath, предшествует символ "

$
". Сами же имена должны удовлетворять продукции
QName
, которую мы рассматривали в разделе "Расширенные имена".

[XP36] VariableReference ::= '$' QName

Поделиться:
Популярные книги

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Ученик. Книга вторая

Первухин Андрей Евгеньевич
2. Ученик
Фантастика:
фэнтези
5.40
рейтинг книги
Ученик. Книга вторая

Обгоняя время

Иванов Дмитрий
13. Девяностые
Фантастика:
попаданцы
5.00
рейтинг книги
Обгоняя время

Дочь моего друга

Тоцка Тала
2. Айдаровы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Дочь моего друга

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Плохая невеста

Шторм Елена
Любовные романы:
любовно-фантастические романы
7.71
рейтинг книги
Плохая невеста

Законы Рода. Том 3

Flow Ascold
3. Граф Берестьев
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 3

Измена. Ты меня не найдешь

Леманн Анастасия
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Ты меня не найдешь

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Убивать чтобы жить 8

Бор Жорж
8. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 8

Мужчина моей судьбы

Ардова Алиса
2. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.03
рейтинг книги
Мужчина моей судьбы

Николай I Освободитель. Книга 5

Савинков Андрей Николаевич
5. Николай I
Фантастика:
альтернативная история
5.00
рейтинг книги
Николай I Освободитель. Книга 5

Шведский стол

Ланцов Михаил Алексеевич
3. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Шведский стол