Как с помощью XPath 2.0 указать значение по умолчанию в случае пустого набора узлов? Я хотел бы иметь возможность сделать что-то вроде $datatypes/type[@key="somevalue"] or "default value"
, чтобы значение по умолчанию возвращалось, если ключ не найден.
Укажите значение по умолчанию в случае пустого набора узлов
Ответы (1)
Возможно, это не то, что вы ищете, но я думаю, что вам нужно иметь Условные выражения.
Поэтому попробуйте что-то вроде этого:
if ($datatypes/type[@key="somevalue"])
than $datatypes/type[@key="somevalue"]
else "default value"
person
hr_117
schedule
24.07.2013
Я также узнал, что
($datatypes/type[@key="somevalue"], "default value")[1]
— это еще один способ (и немного короче!). Спасибо за Ваш ответ :)
- person Vadim Peretokin; 25.07.2013
Это работает только для узлов с одним результатом. XPath сглаживает последовательности, а не вкладывает их друг в друга, поэтому в случае нескольких совпадающих элементов вы получите только первый. Для последовательностей произвольной длины придерживайтесь ответа @ hr_117.
- person Jens Erat; 28.07.2013