PHP simplehtmldom 在空白 table 结构中查找文本

PHP simplehtmldom find text in blank table structure

我很难在 HTML table 的海洋中找到 DYNAMIC-TEXT 值。

我已经尝试 $html->find("th[plaintext*=Type") 并且从这里开始,我想访问同级,但是 return 没有。这是 table 结构

<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 的文本,但操作输出什么都没有

谢谢

在您的代码 $html->find("th[plaintext*=Type") 中,您想使用 attribute selector *= 但没有属性 plaintext.

但是有一个属性 width 的值为 30%。您可以使用模式 ^[0-9]+%$ 来检查后跟百分号的 1+ 位数字。

如果找到结果,您可以从中得到 next_sibling and get the plaintext

例如:

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

结果:

DYNAMIC-TEXT