Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP XPath解析表_Php_Xpath - Fatal编程技术网

PHP XPath解析表

PHP XPath解析表,php,xpath,Php,Xpath,首先,这是我的表格HTML: <table class="xyz"> <caption>Outcomes</caption> <thead> <tr class="head"> <th title="a" class="left" nowrap="nowrap">A1</th> <th title="a" class="left" nowrap="nowrap">A2</th>

首先,这是我的表格HTML:

<table class="xyz">
<caption>Outcomes</caption>
<thead>
 <tr class="head">
  <th title="a" class="left" nowrap="nowrap">A1</th>
  <th title="a" class="left" nowrap="nowrap">A2</th>
  <th title="result" class="left" nowrap="nowrap">Result</th>
  <th title="margin" class="left" nowrap="nowrap">Margin</th>
  <th title="area" class="left" nowrap="nowrap">Area</th>
  <th title="date" nowrap="nowrap">Date</th>
  <th title="link" nowrap="nowrap">Link</th>
 </tr>
</thead>
<tbody>
 <tr class="data1">
  <td class="left" nowrap="nowrap">56546</td>
  <td class="left" nowrap="nowrap">75666</td>
  <td class="left" nowrap="nowrap">Lower</td>
  <td class="left" nowrap="nowrap">High</td>
  <td class="left">Area 3</td>
  <td nowrap="nowrap">Jan 2 2016</td>
  <td nowrap="nowrap">http://localhost/545436</td>
 </tr>
 <tr class="data1">
  <td class="left" nowrap="nowrap">55546</td>
  <td class="left" nowrap="nowrap">71666</td>
  <td class="left" nowrap="nowrap">Lower</td>
  <td class="left" nowrap="nowrap">High</td>
  <td class="left">Area 4</td>
  <td nowrap="nowrap">Jan 3 2016</td>
  <td nowrap="nowrap">http://localhost/545437</td>
 </tr>
 ...
既然我已经将表作为
$elements
中的第一个元素,我如何才能获得每个
的值

理想情况下,我希望得到如下数组:

array(56546, 75666, 'Lower', 'High', 'Area 3', 'Jan 2 2016', 'http://localhost/545436'),
array(55546, 71666, 'Lower', 'High', 'Area 4', 'Jan 3 2016', 'http://localhost/545437'),
...
但我不确定如何才能深入到表代码中


谢谢您的建议。

首先,获取

然后,您可以迭代该集合并查询每个


首先,获取

然后,您可以迭代该集合并查询每个


您可以获取
ChildNodes
并从中获取值您可以获取
ChildNodes
并从中获取值
array(56546, 75666, 'Lower', 'High', 'Area 3', 'Jan 2 2016', 'http://localhost/545436'),
array(55546, 71666, 'Lower', 'High', 'Area 4', 'Jan 3 2016', 'http://localhost/545437'),
...
$rows = $xpath->query('//table[@class="xyz"]/tbody/tr');
foreach ($rows as $row) {
    $cells = $row->getElementsByTagName('td');
    // alt $cells = $xpath->query('td', $row)

    $cellData = [];
    foreach ($cells as $cell) {
        $cellData[] = $cell->nodeValue;
    }
    var_dump($cellData);
}