PHP просто находит текст в пустой структуре таблицы - PullRequest
0 голосов
/ 20 апреля 2019

Мне трудно найти значение DYNAMIC-TEXT в море таблиц HTML.

Я попытался $html->find("th[plaintext*=Type") и отсюда я хотел получить доступ к брату, но ничего не возвращал. Вот структура таблицы

<table>
    <tbody>
    </tbody>

    <colgroup>
        <col width="25%">
        <col>
    </colgroup>

    <tbody>
        <tr class="odd">
            <th colspan="2">Name</th>
        </tr>

        <tr class="even">
            <th width="30%">Type</th>
            <td>DYNAMIC-TEXT</td>
        </tr> 
    </tbody>
</table>

Я ожидаю, что выводом будет текст DYNAMIC-TEXT , но вывод действия - ничто

Спасибо

1 Ответ

0 голосов
/ 24 апреля 2019

В вашем коде $html->find("th[plaintext*=Type") вы хотите использовать селектор атрибута *=, но нет атрибута plaintext.

Но есть атрибут width со значением 30%. Вы можете использовать шаблон ^[0-9]+%$ для проверки цифр от 1+, за которыми следует знак процента.

Если вы найдете результат, вы можете получить next_sibling и получить от него открытый текст .

Например:

$html = str_get_html($str);
foreach ($html->find("th[width*=^[0-9]+%$]") as $value) {
    echo $value->next_sibling()->plaintext;
}

Результат:

DYNAMIC-TEXT
...