2012-08-29 47 views
0

我想这个刮刮痧:与simple_html_dom

<a id="pa1">Site1</a> 
<font size="-1">Text1</font><br /> 
<font size="-1" color="green">Text2</font><br /> 

我得到得到PA1 easily..but我想给来后两种字体..所以我用这个:

$html = new simple_html_dom(); 
$html->load($document); 

foreach ($html->find('#pa1>font') as $e) { 
    $this->check_line_two = $this->process_array_elements($e->innertext); 
} 

foreach ($html->find('#pa1>font>font') as $e) { 
    $this->check_line_three = $this->process_array_elements($e->innertext); 
} 

两者都没有工作。我怎样才能获得简单的HTML DOM的下一个元素?

回答

2

像feeela说,这些字体元素不是锚的后裔。试试这样的:

foreach ($html->find('#pa1') as $e) { 
    $firstFontElement = $e->next_sibling(); 
} 
+0

谢谢..我想这是最好的解决方案 –

2

没有后裔font -tag在#pa1之内。

你明显搜索的是兄弟选择器+#pa1 + font。但我不知道它是否被你使用的图书馆支持。

请仔细阅读他们的文档:http://simplehtmldom.sourceforge.net/manual.htm

+0

它不适合我 –

+0

@Dmitry Makovetskiyd什么不适合你?阅读文档? – feeela

0

如果这就是你想要报废,为什么你不选择字体标签。

foreach ($html->find('font') as $e) { 
    $this->check_line_two = $this->process_array_elements($e->innertext); 
} 

或者是否有更多的字体标签存在于文档中的可能性?

+0

你可以有多个字体在文档中 –