2016-12-12 3 views
0

Я использую этот запрос:XPath - все элементы внутри тела

//*[self::div or self::p or self::span]/text()[normalize-space()][string-length() > 140] 

.. но он также извлекает содержимое из необязательных элементов (<head> и т.д ..), поэтому я хочу, чтобы ограничить поиск в <body>, но это не работает по какой-то причине:

//body/*[self::div or self::p or self::span]/text()[normalize-space()][string-length() > 140] 

... для этого HTML: http://pastebin.com/F4xVDL8Q

ответ

1

следующая часть вашего XPath indicat е, что поиск должен осуществляться только в прямого потомка элементы body:

//body/* 

Поскольку вы имеете в виду искать во всех элементов в body то //* должен был бы использоваться вместо:

//body//*[...]/text()[...][string-length() > 140] 
Смежные вопросы