Что является различием между//узел и / потомок:: узел в xpath?

Если метрика просто, что все соответствия ключевого слова более "ценны", чем все соответствия содержания затем, можно просто использовать объединение с количествами строки. Что-то вдоль этих строк.

select *
from (
   select row_number() over(order by blahblah) as row, t.*
   from thetable t
   where keyword match

   union

   select row_number() over(order by blahblah) + @@rowcount + 1 as row, t.*
   from thetable t
   where content match
)
order by row

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

32
задан Dave Hunt 8 October 2009 в 13:22
поделиться

3 ответа

см. http://www.w3.org/TR/xpath#path-abbrev

// просто аббревиатура для потомка :: axis

Править

Цитата:

// para является сокращением от / Потомок-или-self :: node () / child :: para

То есть, это относится ко всем para, которые являются дочерними элементами контекстного узла или любой узел, происходящий от контекстного узла. Насколько я могу судить, это переводится в любой параграф-потомок контекстного узла.

35
ответ дан 27 November 2019 в 20:46
поделиться

Кроме краткости, я не заметил никакой разницы.

2
ответ дан 27 November 2019 в 20:46
поделиться

Существует различие в группе контекста. //пункт [1] сокращенно /descendant-or-self:: node ()/child:: para [1] , который возвращает каждый абзац, являющийся первым нижестоящим элементом родителя. /descendant:: para [1] возвращает только первый абзац во всем поддереве.

11
ответ дан 27 November 2019 в 20:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: