Книга: XSLT
id()
id()
Функция id возвращает набор узлов, в котором все узлы имеют такой же ID, как и переданный в эту функцию. Функция применяется следующим образом:
node-set id(id-value)
В функцию передается значение ID, и она возвращает набор узлов с узлами, имеющими этот ID. Заметьте, что вы можете задать несколько ID, разделенных символами-разделителями, и функция вернет набор узлов с элементами, обладающими этими ID.
Следующее правило-пример выбирает текст всех элементов с ID «favorite»:
<xsl:template match = "id('favorite')">
<H3><xsl:value-of select="."/></H3>
</xsl:template>
Отметьте также, что вы должны объявлять значения ID как в DTD или схеме. Объявление DTD для planets.xml
, объявляющее ID с именем id
и присваивающее ему значение «favorite», может выглядеть так:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="stylesheet.xsl"?>
<!DOCTYPE PLANETS [
<!ELEMENT PLANET (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,MASS,RADIUS,DAY)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT MASS (#PCDATA)>
<!ELEMENT RADIUS (#PCDATA)>
<!ELEMENT DAY (#PCDATA)>
<!ATTLIST PLANET
id ID #REQUIRED>
]>
<PLANETS>
<PLANET>
<NAME>Mercury</NAME>
<MASS UNITS="(Earth = 1)">.0553</MASS>
<DAY UNITS="days">58.65</DAY>
<RADIUS UNITS="miles">1516</RADIUS>
<DENSITY UNITS="(Earth = 1)">.983</DENSITY>
<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->
</PLANET>
.
.
.
Заметьте, что некоторые процессоры XSLT не могут осуществлять выборку по ID, потому что они не читают объявления DTD и схему XML. Это одна из задач, которые призван решить XSLT 2.0 — сделать доступной информацию об идентификаторах.
- 26 Люди читают только 60 % статьи
- Forward Zone
- LINQ to Objects
- 5. Вдохновение сотрудников на инновации
- Пять уроков Великого Магистра, или повесть о том, как Петя Бочкин изучал программирование
- Глава 4. План своевременного завершения
- Сайты, обслуживающие другие ресурсы
- 4.10.1. Состояние сброса МК
- Что такое Проводник?
- Пример 11-16. Передача переменных во вложенный сценарий awk, с помощью export
- Login Succeeds, but the Handshake Fails
- 12.3.1. TFTP Server