PHP简单的HTML DOM单元格值

时间:2012-09-28 13:08:09

标签: php html-parsing simple-html-dom

我在使用PHP Simple HTML DOM -lib解析时遇到问题。

HTML:

<td>
<span>text</span>
actual text i want to pick up
<span>text2</span>
</td>

我不知道如何获得“我想要提取的实际文本” - 从那里开始。 $ node-&gt; innertext和$ node-&gt; plaintext也包含span-tags内的文本。

编辑: 我试过了

$node->innertext // prints the whole thing
$node->plaintext // prints "textactual text i want to pick uptext"
$node->tag //prints td

手册似乎没有明确提及像我这样的案例。

如果有更好的方法来解析html而不是该库,我也会接受其他建议。我大部分时间都得到了我想要的那个图书馆,但是这篇文章我还没找到。

2 个答案:

答案 0 :(得分:0)

您可以使用str_get_html以下

$source = '<td>
<span>text</span>
actual text i want to pick up
<span>text2</span>
</td>';

$dom = str_get_html($source);
var_dump($dom->plaintext);

输出

text actual text i want to pick up text2

答案 1 :(得分:0)

好的,我想到了如何访问所需的信息。尝试了关于$ node-&gt; children($ x) - &gt; innertext的不同组合,但这并没有帮助。这种方式并不“正确”,但在我的情况下有效。

foreach($node->nodes as $c) {
   if($c->tag == "text")
     $text = $c->innertext;
}