php simplehtmldom问题

时间:2010-12-10 16:52:38

标签: php

我对simplehtmldom有疑问。 如何获取某个元素的文本,该元素是包含特定文本的另一个元素的next_sibling?

例如:

我有这样的HTML文字:

<div>
 <table>
  <tr>
   <td>prova</td>
   <td>pippo</td>
  </tr>
 </table>
</div>

我需要提取第二个“td”的文本。考虑到我知道值“prova”是一个固定值。我以为我可以使用这段代码:

echo $html->find("td:contains('prova')",0)->next_sibling();

但simplehtmldom中不存在“contains”。 我怎么能这样做?

非常感谢


感谢您的回答,但我需要提取包含文本“prova”的 td 旁边的 td 文字。

作为示例,我需要使用类似的代码

提取值“pippo”
echo $html->find("td:contains('prova')",0)->next_sibling()->innertext;

因为我知道第一列的价值。不幸的是,simplehtmldom中不存在包含功能。

代码

echo $html->find("td:innertext('prova')",0)->next_sibling();

不是正确的方法。

你还有其他建议吗?

由于

1 个答案:

答案 0 :(得分:1)

试试这段代码

<?php
include_once "simple_html_dom.php";
// the html code loaded (in this case in string mode)
$html = '<div>
 <table>
  <tr>
   <td>prova</td>
   <td>pippo</td>
  </tr>
 </table>
</div>';

$dom = str_get_html($html);
// the selector :contains isn't develop yet
$tds = $dom -> find("td");
foreach($tds as $td){
    if ($td -> innertext == "prova"){
        echo $td -> next_sibling()  -> innertext;
    }
}
?>