xPath help> Найти img с помощью alt = 'My Keyword' - PullRequest
2 голосов
/ 30 октября 2010

Как я могу изменить этот xpath, чтобы найти, содержит ли контент тег img с alt, содержащим мою ключевую фразу?

$ xPath-> оценка ( 'COUNT (/ HTML / тела //'.$ тег. [Содержит ( "» $ ключевое слово.. ").])');

Ответы [ 2 ]

4 голосов
/ 30 октября 2010

Используйте

boolean(//img[contains(@alt, 'yourKeywordHere')])

чтобы найти (true(), false()), есть ли в документе XML элемент img, атрибут которого alt содержит 'yourKeywordHere'.

Используйте

boolean(//yourTag//img[contains(@alt, 'yourKeywordHere')])

чтобы найти, есть ли в документе элемент с именем yourTag, имеющий потомок img, чей атрибут alt содержит 'yourKeywordHere'.

1 голос
/ 30 октября 2010

Я не совсем понимаю, для каких элементов вы ищите, но вот пример, который возвращает все элементы h1, которые содержат хотя бы одно изображение с your_keyword в alt:

//h1[.//img[contains(@alt, 'your_keyword')]]

Вы также должны обрабатывать, если он чувствителен к регистру или нет.Вы можете использовать этот xpath, но будьте осторожны, некоторые оценщики xpath не поддерживают функцию lower-case.

//h1[.//img[contains(lower-case(@alt), lower-case('your_keyword'))]]

Вот пример:

//h1[.//img[contains(@alt, 'key ')]]

<html>
    <h1> <!-- found -->
        <img alt='here is my key' />
    </h1>
    <h1><!-- not found -->
        <img alt='here is not' />
    </h1>
    <h1> <!-- found -->
        <h2>
            <img alt='the key is also here' />
        </h2>
    </h1>
    <h1></h1> <!-- not found -->

</html>
...