2016-09-08 3 views
1

У меня есть структура вроде этого:Как выбрать ячейку таблицы по другому имени ячейки таблицы

<tbody> 
    <tr> 
    <td>Book Title</td> 
    <td><a href="http://localhost/books/book-title">More Info</a></td> 
    <td><a href="http://localhost/book?product=bt1">Buy Now</a></td> 
    </tr> 

<tr> 
    <td>Book Title2</td> 
    <td><a href="http://localhost/books/book-title2">More Info</a></td> 
    <td><a href="http://localhost/book?product=bt2">Buy Now</a></td> 
    </tr> 

<tr> 
    <td>Book Title3</td> 
    <td><a href="http://localhost/books/book-title3">More Info</a></td> 
    <td><a href="http://localhost/book?product=bt3">Buy Now</a></td> 
    </tr> 
</tbody> 

Как я выбираю Купить Href по названию книги. Например, если выбран по названию книги «Название книги 2», он вернет «http://localhost/book?product=bt2».

Я пробовал $nodeList = $xpath->query('//*/a[contains(@href,\'product\')]');, но он возвращает только список всех ссылок на покупку.

Спасибо!

+0

Вы должны использовать java-скрипт и предоставить идентификатор для каждого td –

+0

Я пытаюсь очистить данные с другого веб-сайта с помощью PHP –

+0

Скребок является незаконным, вы должны использовать там API для получения данных с веб-сайтов. –

ответ

1

Предполагая, что вы используете DOMDocument и DOMXpath, вы должны быть в состоянии использовать что-то вроде этого:

$title = 'Book Title2'; 
echo $xpath->query('//tr[td = "' . $title . '"]/td[a = "Buy Now"]/a/@href')[0]->textContent; 

// http://localhost/book?product=b2 

См https://eval.in/637744 для демонстрации.