Вот мой HTML код:Невозможно выбрать несколько значений с помощью XPath
<table id="laptop_detail" class="table">
<tr>
<td style="padding-left:18px" class="ha">Touchscreen</td>
<td class="val"><span class="no_icon">No</span></td>
</tr>
<tr>
<td style="padding-left:18px" class="ha">Water Dispenser</td>
<td class="val"><span class="no_icon">No</span></td>
</tr>
<tr>
<td style="padding-left:18px" class="ha">Colour/Material</td>
<td class="val">Grey</td>
</tr>
</table>
Вот мой XPath:
$x('//*[@id="laptop_detail"]//tr/td[contains(. ,"Touchscreen")]/following-sibling::td[1]/span/text() and //*[@id="laptop_detail"]//tr/td[contains(. ,"Water Dispenser")]/following-sibling::td[1]/span/text() and //*[@id="laptop_detail"]//tr/td[contains(. ,"Colour")]/following-sibling::td[1]/text()')
Но мой XPath возвращает "истина", а не мое требование «Нет, нет , Серый ". Я знаю, что что-то не так с моим xpath, но я не могу это понять.
EDIT: Хорошо я был немного успеха, я был в состоянии получить «Нет, нет», используя этот XPath:
$x('//*[@id="laptop_detail"]//tr/td[contains(. ,"Touchscreen") or contains(. ,"Water")]/following-sibling::td[1]/span/text()')
, но не смог получить «Грэй», как это значение не находится внутри диапазона тег.
Почему бы не просто добавить еще одно выражение для серого с использованием | оператор. –
@DmytroPastovenskyi не знал, смогу ли я это сделать. –
Тогда попробуйте решение ниже, оно должно работать для вас. –