[英]Html dom parser php table
这是我的桌子
Grapes 1 25 25
Mangoes 2 30 60
Apple 5 10 50
我上表的HTML代码是
<table>
<tr>
<td><font>Grapes</font></td>
<td><font>1</font></td>
<td><font>25</font></td>
<td><font>25</font></td>
</tr>
<tr>
<td><font>Mangoes</font></td>
<td><font>2</font></td>
<td><font>30</font></td>
<td><font>60</font></td>
</tr>
<tr>
<td><font>Apple</font></td>
<td><font>5</font></td>
<td><font>10</font></td>
<td><font>50</font></td>
</tr>
</table>
上表是我的html代码中的第4个表
我的PHP代码是
<?php
include('simple_html_dom.php');
$result = curl_exec($ch);
curl_close($ch);
$src = new DOMDocument('1.0', 'utf-8');
$src->formatOutput = true;
$src->preserveWhiteSpace = false;
@$src->loadHTML($result);
$xpath = new DOMXPath($src);
$values=$xpath->query('//table[4]//tr');
foreach($values as $value)
{
$rowdata = str_replace(">"," ",$value->nodeValue);
$n = explode("\n", $rowdata);
print_r($n);
}
这里$ result包含来自curl执行的html代码
我的输出是
Array ( [0] => Grapes12525 [1] => ) Array ( [0] => Mangoes23060 [1] => ) Array ( [0] => Apple51050 [1] => )
但我想输出为
Array ( [0] => Grapes [1] => 1 [2] => 25 [3] => 25 ) Array ( [0] => Mangoes [1] => 2 [2] => 30 [3] => 60 ) Array ( [0] => Apple [1] => 5 [2] => 10 [3] => 50 )
我尝试过
$values=$xpath->query('//table[4]//tr//td');
但这将每个值打印为数组
是否有任何方法可以让子元素进入for循环,例如仅td位于父tr内,或通过其他任何方法来实现此目的
请帮助我
谢谢
我会尝试:
$rowdata = explode(' ', $value->textContent);
文字内容应为tr儿童的全文,并以空格分隔。
如果这样不起作用。 在foreach循环中使用// td和$ value作为上下文节点执行另一个xpath查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.