На самом деле я не понимаю
символ |
Это оператор объединения XPath .
Как определено в W3 XPath 2.0 Spec .:
• Союз и | операторы
эквивалент. Они берут два узла
последовательности в качестве операндов и возвращают
последовательность, содержащая все узлы, которые
встречаются в любом из операндов.
Конечно, оператор "union" (английское слово) был добавлен только в XPath 2.0, а в XPath 1.0 у нас есть только более ранний синоним, представленный символом |
.
Итак, в частном случае :
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
Вышеупомянутое выражение XPath выбирает объединение двух множеств :
Все узлы выбраны: link[@rel='alternate' and @type='text/html' or not(@rel)]/@href
Все узлы, выбранные: link/text()
Объединение - это стандартная операция в теории множеств (и в математике), хотя знак «U» используется для обозначения объединения там.
Цитировать определение из Википедия :
Объединение двух множеств A и B является
коллекция точек, которые находятся в или
в B (или в обоих):
Простой пример :
A = {1,2,3,4,5,6}
B = {1,5,6,7,8}
A U B = {1,2,3,4,5,6,7,8}