我使用简单的 HTML DOM 已经有一段时间了,并且一直喜欢我可以用它做的事情。但是,我遇到了我想做的事情。首先给出 html 长什么样的基本概念
<html>
<div><div><table><tr><td class="alt2"> texty texty </td></tr></table></div></div>
Text text
<div><div><table><tr><td class="alt2"> texty2 texty2 </td></tr></table></div></div>
Text2 text2
<div><div><table><tr><td class="alt2"> texty3 texty3 </td></tr></table></div></div>
Text2 text3
</html>
所以基本上我需要在 TD 的粗体中取什么,然后在这个 div 下的每个 div 下放置什么。
所以我知道我可以做 $text = $html->find('td[class=alt2]') 例如得到“texty texty”,但是之后我如何将“text text”与它相关联,
如果我抓住 texty2 texty2,我如何将 text2 text 2 与它相关联?
最后,我的目标是<p>texty texty</p><br>text text
输出
我应该指出,div 可以有不同的类等,所以简单的 reg 表达式不起作用(如果可能的话,我想坚持使用简单的 html dom)
--
更新:
我做了这个小代码
if ($html) {
// Pulls the div that holds the links to the champion profiles (where they have the english names)
$text = $html->find('td[class="alt2"]');
$count = 0;
foreach ($text as $holder) {
$tdholder[] = $holder->innertext;
$html->find('div',$count*2)->innertext = $holder->innertext;
echo $holder."<br><br>";
$count++;
}
}
此代码的唯一问题是它按 div 的总数计算。在我的例子中这没关系,因为总是有 2 个。但如果有 2 个或三个,这就会产生问题。所以现在我只需要弄清楚如何抓住第一个,第二个或第三个顶级div,我应该很好。