2013-06-22 3 views
0

У меня есть иерархия так:Как найти внутренний узла с помощью XPath

<div> 
    <a>Title</a> 
    <img src="..."> 
</div> 

я должен перечислить с этим XPATH кодом: «// в», и ДИВ узел является динамическим, так что это может быть тр или p ... Я хочу найти тег img через тег. Как мне это сделать?

Я пробовал «// a/ancestor :: * // img», но он не работает.

+3

'// a/follow-sibling :: img'. См. Http://stackoverflow.com/search?q=following-sibling – Wrikken

+0

Спасибо Wrikken за ваш ответ. Мой вопрос отсутствует в тегах, например, может быть, тег «a» будет в другом теге. Иерархия этой ситуации:

Могу ли я использовать следующий брат, в этой ситуации? –

+0

Не 'следующий-родной'. 'follow :: a' возможно, но это просто означает _'somwhere позже в документе'_, который может быть в совершенно другом месте. Наличие определения того, где совпадение соответствует или не помогает, немного сдерживает его. – Wrikken

ответ

-2

Вы можете (почти) обрабатывать запросы XPath, такие как файловая система с каталогами. Каждый слой вложенных тегов, другой «каталог» в этой файловой системе, так

//a/../img 

найдет все a тегов в DOM, которые следуют в img. И запрос вернет те теги img. Если вам действительно нужно иметь дело с тегом a, но только те, у которых есть img как родной брат, тогда это будет несколько более сложный запрос.