Книга: Технология XSLT
Операции над множествами
Операции над множествами
Рассматривая такой тип данных, как множества узлов, мы отмечали ограниченность операций, которые можно с ними производить. В частности, XSLT не предоставляет стандартных операторов для определения принадлежности одного множества другому, нахождения пересечений, разности множеств и так далее. Возможности, которые были представлены при описании этого типа данных, основанные на использовании оператора равенства, на самом деле реализуют далеко не математические операции над множествами.
В этом разделе мы рассмотрим иной подход к реализации операций над множествами, основанный на очень простом определении принадлежности узла множеству. Узел node
принадлежит множеству nodeset
тогда и только тогда, когда выполняется равенство
count($nodeset) = count($node | $nodeset)
Учитывая это обстоятельство, операции над множествами можно представить, как показано в табл. 11.1. Результирующее множество выделено штриховкой.
Таблица 11.1. Операции над множествами
Операция | Графическое представление | XPath-выражение |
---|---|---|
Объединение | $A | $B |
|
Пересечение | $А[count(.|$B)=count($B)] |
|
Разность | $A[count(.|$B)!=count($B)] |
|
Симметрическая разность | $A[count(.|$B)!=count($B)] | $B[count(.|$A)!=count($A)] |
Приведенные выше методы были разработаны Майклом Кеем (Michael Kay, Software AG), Оливером Беккером (Oliver Becker, Humboldt-Universitat zu Berlin), Кеном Холманом (Ken Holman, Crane Softwrights Ltd.) и публикуются с любезного разрешения авторов.
- V. Операции над указателями
- Множества повышенной надежности
- 16.1. Операции tty
- 2.8.3. Модем вам не понадобится!
- 2.8. Что вам понадобится в комплект к ПК (выбираем периферийные устройства)
- 9.1.1. Простые операции над множествами
- 9.1.2. Более сложные операции над множествами
- Восстановление "безнадежных" баз данных. InterBase Surgeon
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- Надежность и безопасность
- 2.5. Разработка технического задания на проведение детального анализа рынка при работе над инновационным проектом. Основ...
- Операции с множествами узлов