我找到了这个话题: How to parse this table and extract data from it? 这可能是我的问题的答案,我想要同样的事情 - 解析一些外部表,提取数据并在我的网页上打印这些数据。 @Yoshi给出了完美的答案,但是当我尝试使用这段代码时,我得到的是空数组
Array()
我不知道为什么这不起作用?我试图使用相同的例子
<?php
$dom = new DomDocument;
$dom->loadHtmlFile('http://www.nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=lat');
$xpath = new DomXPath($dom);
// collect header names
$headerNames = array();
foreach ($xpath->query('//table[@id="index:srednjiKursLista"]//th') as $node) {
$headerNames[] = $node->nodeValue;
}
// collect data
$data = array();
foreach ($xpath->query('//tbody[@id="index:srednjiKursLista:tbody_element"]/tr') as $node) {
$rowData = array();
foreach ($xpath->query('td', $node) as $cell) {
$rowData[] = $cell->nodeValue;
}
$data[] = array_combine($headerNames, $rowData);
}
print_r($data);
?>
答案 0 :(得分:1)
页面已更改,这就是代码无效的原因,这个有效:
include('simple_html_dom.php');
$dom = new DomDocument;
$dom->loadHtmlFile('http://www.nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=lat');
$xpath = new DomXPath($dom);
// collect header names
$headerNames = array();
foreach ($xpath->query('//table[@id="index:srednjiKursLista"]//th') as $node) {
$headerNames[] = $node->nodeValue;
}
// collect data
$data = array();
foreach ($xpath->query('//tbody[@id="index:srednjiKursList:tbody_element"]/tr') as $node) {
$rowData = array();
foreach ($xpath->query('td', $node) as $cell) {
$rowData[] = $cell->nodeValue;
}
$data[] = array_combine($headerNames, $rowData);
}
echo "<pre>";
print_r($data);
echo "</pre>";
现在,我想你想要提取一些货币的SREDNJI KURS值,你会这样做
echo $data[15]['SREDNJI KURS'];
这将以美元提取。